使用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 ??
答案 0 :(得分:18)
Werror
是一个gcc参数,您无法通过./configure
直接删除它,否则--disable-error
之类的选项会显示在帮助文本中。但是,这是可能的。
设置环境变量:
export CFLAGS="-Wno-error"
这适用于C编译器。如果项目使用C ++,请执行:
export CXXFLAGS="-Wno-error"
在非常罕见的情况下,项目不会尊重这些变量,您最后的办法是编辑configure.ac
文件并搜索-Werror
并将其从发生的字符串中删除(但要小心, )。
答案 1 :(得分:6)
./configure --disable-werror
不幸的是,我无法得到以下具体案例:
./configure --enable-wno-error=unused-value
如果有一个转义为“=
”符号,假设它是可能的话,也许它可以工作。就像脱脂说的那样,人们仍然可以使用CFLAGS
或CXXFLAGS
。
答案 2 :(得分:1)
这项工作对我来说,编译curlpp,lubuntu 16.10:
./configure --disable-ewarning
答案 3 :(得分:1)
我必须在模块上使用--disable-Werror
(大写的W
)。 sudoman's anwer above建议使用--disable-werror
(小写的w
)。
它看起来像是一个错字,但实际上取决于您特定的configure
设置,尤其是如果configure
由autoconf
生成的话。禁用configure
所需传递给Werror
脚本的内容取决于构建系统的设置方式。
如果您的项目使用autoconf-archive
项目中的AX_COMPILER_FLAGS选项,则默认情况下-Werror
是启用的。
在另一个模块中,您可能会找到以下内容:
+AC_ARG_ENABLE([werror],
+ AC_HELP_STRING([--disable-werror],
+ [do not build with -Werror]),
因此,您将需要使用--disable-werror
。