我正在尝试编译 Netis WF2190 适配器的驱动程序。是的,我刚刚从他们那里下载了最新版本。
我如何-Werror=date-time
在构建中禁用它?我在构建脚本的任何地方都找不到它,所以我认为它一定是某种全局默认设置。显然,代码只是试图将构建日期/时间嵌入到输出中,因此禁用此警告应该没有问题。
以下是我收到的一些被视为错误的警告:
/home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/driver/rtl8812AU_linux_v4.3.8_12175.20140902/core/rtw_debug.c:66:1: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]
/home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/driver/rtl8812AU_linux_v4.3.8_12175.20140902/core/rtw_debug.c:66:1: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]
cc1: some warnings being treated as errors
答案1
我认为日期时间警告是 gcc 4.9 中的新内容 - 它可能是被隐式打开的-Wall
(并且被隐式转变为错误-Werror
)。
您可以尝试使用以下形式明确关闭它-Wno-
:
-Wno-error=date-time
到CFLAGS
。
答案2
我尝试多次将“Wno-error=date-time”行添加到 CFLAGS,但似乎没有作用。
对我来说,迄今为止最简单的解决方案是通过执行来找到生成“__DATE__”行的文件
grep -r "__DATE__"
它(针对我正在使用的源代码)给了我文件
acore/info.patch:+ "Compiled on " __DATE__ " for kernel %s"
我只是通过删除引号将其更改为没有变量的字符串,即
"Compiled on __DATE__ for kernel %s"
然后就可以继续编译了
编辑:如前所述,make clean
在运行 configure 和 make 之前使用,或者更好的是,从 zip/tar 文件中提取新版本
答案3
最好从 rtw_debug.c 文件中删除第 66 行,以移除有问题的宏。
sed -i -e '66d' /home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/driver/rtl8812AU_linux_v4.3.8_12175.20140902/core/rtw_debug.c
现在您可以继续构建:
cd /home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/
sudo make clean
make
sudo make install