如何编译没有警告被视为错误?
问题是在Windows上编译好的代码无法在Ubuntu上编译。 每当我得到这个错误:
cc1: warnings being treated as errors
现在,这是大代码基础,我不喜欢修复所有的警告。
尽pipe有警告,有什么办法可以成功编译?
当然,find哪里-Werror
设置错误,并删除该标志。 那么警告只会是警告。
您可以使用-Wno-error
将所有警告都视为这样处理。 您可以使用-Wno-error=<warning name>
来处理特定的警告,其中<warning name>
是您不希望看作错误的警告的名称。
如果要完全禁用所有警告,请使用-w
(不推荐)。
资料来源: http : //gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Warning-Options.html
如果你正在编译linux内核。 例如,如果要禁用“未使用但设置variables”的警告视为错误。 你可以添加一个声明:
KBUILD_CFLAGS += $(call cc-option,-Wno-error=unused-but-set-variable,)
在你的Makefile中
感谢所有有用的build议。 我终于确定在我的代码中没有任何警告,但是又一次从sqlite3得到这个警告:
Assuming signed overflow does not occur when assuming that (X - c) <= X is always true
我通过添加以下CFLAG来修复:
-fno-strict-overflow
-Wall
和-Werror
编译器选项可能导致它,请检查是否在编译器设置中使用这些选项。
从你的Make或者CMake文件中移除-Werror
,正如这篇文章中的build议