Arch:所有警告都被视为错误吗?

Arch:所有警告都被视为错误吗?

我正在尝试make下载驱动程序,xf86-视频-armsoc,在 Arch Linux 上。但是,配置make阻止我编译驱动程序,因为它将所有编译器警告视为错误。有什么方法可以禁用此功能吗?

我已经阅读了引发的错误,它们看起来都像警告。它们是诸如 、 和 之类的东西storage of 's' isn't known,听起来implicit declaration of function都可以忽略。nested extern declarationunused variable

答案1

-Werror作为错误的警告通常是传递给编译器的结果。开发人员可以有意执行,以查看仍然存在多少错误,并且仅因为仍在开发中而留下错误,或者在任务关键型软件中有意执行。

无论如何,你需要找出在哪里-Werrorgrep是一个很好的工具:只需递归地 grep 整个单词(前导破折号无关紧要):,grep -lr Werror .同时驻留在驱动程序源代码目录中。

然后您可以使用简单的从每个文件中删除开关sed -i 's@-Werror@@g' file

寻找https://github.com/endlessm/xf86-video-armsoc/blob/master/src/Makefile.am-Werror在 ERROR_CFLAGS 中看到了显式设置,因此开发人员决定也捕获一些非致命警告。

不幸的是,-Werror在构建发布软件时,这是无用且烦人的,因为编译器差异很大。像隐式函数声明和不兼容的指针/存储大小不匹配这样的简单事情确实需要注意,但开发人员的任务是使他们的代码符合通用和公认的标准。

相关内容