如何从autotools生成的makefile中删除-Werror?

4
我正在编译一个使用autotools构建过程的大型库。有许多makefile,每个都会得到CFLAGS = .... -Werror。 当我尝试编译时,我的设置上会出现一些轻微的警告,这些警告会导致构建失败。 我想尝试在警告下进行构建,因此需要从所有makefile中删除-Werror。是否有方法防止autotools在所有这些makefile中放入-Werror?

1
检查configure.ac文件 - 它可能包含类似于 AM_INIT_AUTOMAKE([-Werror]) 的内容。不要编辑Makefile文件,因为这些是由程序生成的。 - Till
3个回答

3

我在 configure.ac 文件中进行了探索,找到了如下内容:

AC_ARG_ENABLE([werror],
  AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
  [gcc_werror=$enableval], [gcc_werror=$gcc_warnings])

因此我运行了如下配置:

./configure --disable-werror

它像魔法一样起作用了。我的makefile中不再有-Werror标志。谢谢你的评论,Till!


1
注意,对于任何来到这里的人,这取决于具体项目。有些项目使用“--disable-werror”,而其他一些项目则使用“--disable-Werror”,还有一些项目可能没有提供修改构建方式的标志。请查看项目的“configure.ac”文件和“./configure --help”输出,以查看是否提供了这样的标志。 - Kris Bahnsen

1
我的sed方式,在Makefile创建后。
find . -name Makefile -exec sed -i s'/-Werror//g' {} \;

在Mac中,将sed替换为gsed。保留HTML,不解释。

0

对于基于Autotools的项目,您可能需要传递以下内容:

./autogen.sh --disable-Werror

注意 Werror 中的大写字母 W


1
注意,对于任何来到这里的人,这取决于具体项目。有些项目使用“--disable-werror”,而其他一些项目则使用“--disable-Werror”,还有一些项目可能没有提供修改构建方式的标志。请查看项目的“configure.ac”文件和“./configure --help”输出,以查看是否提供了这样的标志。 - Kris Bahnsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接