禁用-Werror ini配置文件

时间:2011-11-15 06:58:06

标签: makefile configure

使用Makefile创建项目时,出现此错误:

error: implicit declaration of function ‘fatal’ [-Werror=implicit-function-declaration]

cc1: all warnings being treated as errors

./configure --help显示

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --disable-dependency-tracking  speeds up one-time build
  --enable-dependency-tracking   do not reject slow dependency extractors
  --disable-gtktest       do not try to compile and run a test GTK+ program
  --enable-debug    Turn on debugging

如何告诉configure不要包含-Werror ??

4 个答案:

答案 0 :(得分:18)

Werror是一个gcc参数,您无法通过./configure直接删除它,否则--disable-error之类的选项会显示在帮助文本中。但是,这是可能的。

设置环境变量:

export CFLAGS="-Wno-error"

这适用于C编译器。如果项目使用C ++,请执行:

export CXXFLAGS="-Wno-error"

在非常罕见的情况下,项目不会尊重这些变量,您最后的办法是编辑configure.ac文件并搜索-Werror并将其从发生的字符串中删除(但要小心, )。

答案 1 :(得分:6)

似乎这个功能多年来一直在autotools中使用:

./configure --disable-werror

不幸的是,我无法得到以下具体案例:

./configure --enable-wno-error=unused-value

如果有一个转义为“=”符号,假设它是可能的话,也许它可以工作。就像脱脂说的那样,人们仍然可以使用CFLAGSCXXFLAGS

答案 2 :(得分:1)

这项工作对我来说,编译curlpp,lubuntu 16.10:

./configure --disable-ewarning

答案 3 :(得分:1)

我必须在模块上使用--disable-Werror(大写的W)。 sudoman's anwer above建议使用--disable-werror(小写的w)。

它看起来像是一个错字,但实际上取决于您特定的configure设置,尤其是如果configureautoconf生成的话。禁用configure所需传递给Werror脚本的内容取决于构建系统的设置方式。

如果您的项目使用autoconf-archive项目中的AX_COMPILER_FLAGS选项,则默认情况下-Werror是启用的。

在另一个模块中,您可能会找到以下内容:

+AC_ARG_ENABLE([werror],
+         AC_HELP_STRING([--disable-werror],
+                [do not build with -Werror]),

因此,您将需要使用--disable-werror