如何修复错误 -Werror=date-time/macro “__DATE__” 可能会阻止可重现的构建

如何修复错误 -Werror=date-time/macro “__DATE__” 可能会阻止可重现的构建

因此,我一直在尝试安装 Realtek 音频驱动程序,但在make install我得到以下信息后:

-Werror=日期时间/宏“日期”可能会阻止可重现的构建

我看到过一篇有类似问题的帖子,但我不明白在终端中到底要输入什么。帖子说我应该添加,-Wno-error=date-timeCFLAGS我不知道该怎么做。我会在下面链接帖子。

如何禁用 -Werror=date-time/macro "__DATE__" 可能会阻止可重现的构建

我正在使用 Ubuntu 17.04 64 位。

另外,请不要重复发帖,因为其他帖子对我没有帮助,而且由于缺乏特权点,我无法对它们发表评论。

结果sudo lshw -C sound

  *-multimedia              
      description: Audio device
      product: 200 Series PCH HD Audio
      vendor: Intel Corporation
      physical id: 1f.3
      bus info: pci@0000:00:1f.3
      version: 00
      width: 64 bits
      clock: 33MHz
      capabilities: pm msi bus_master cap_list
      configuration: driver=snd_hda_intel latency=32
      resources: irq:133 memory:df240000-df243fff memory:df220000-df22ffff

pavucontrolalsamixer结果链接如下: 在此处输入图片描述 在此处输入图片描述

答案1

编辑您的源代码Makefile并将其添加到文件顶部附近(如果您仔细观察,这一行可能已经存在,但只是被注释掉了):

EXTRA_CFLAGS += -Wno-error=date-time

然后执行正常操作./configure(如果需要)和makesudo make install

更新#1:

如果你使用的源代码来自http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&PNid=24&PFid=24&Level=4&Conn=3&DownTypeID=3&GetDown=false那么它们仅适用于内核 2.x 和 3.x,因此无法在当前版本的 Ubuntu 上编译。

答案2

如果你谈论的是这些司机那么事情就没那么简单了。

内核构建脚本强制执行此逻辑,并在以任何正常方式注入无错误对应项后添加错误标志。因此,错误仍然存​​在。

我看到的唯一修复方法是暂时从内核构建 makefile 中删除该行:

sudo sed -i.bak '/date-time/d' /usr/src/linux-headers-4.10.0-32/Makefile

然而,这只会给你带来下一个问题:

函数“do_posix_clock_monotonic_gettime”的隐式声明

这是由于老化和未维护的源造成的真正问题。

本次实验后,请确保恢复原始 Makefile:

 sudo mv /usr/src/linux-headers-4.10.0-32/Makefile.bak \
     /usr/src/linux-headers-4.10.0-32/Makefile

相关内容