113

问题是在 Windows 上编译良好的相同代码无法在 Ubuntu 上编译。每次我收到此错误时:

cc1: warnings being treated as errors

现在,它的代码库很大,我不喜欢修复所有警告。

尽管有警告,有什么方法可以成功编译?

4

7 回答 7

93

当然,找到-Werror设置的位置并删除该标志。那么警告将只是警告。

于 2012-07-19T12:52:20.640 回答
42

您可以使用-Wno-error. 您可以通过使用-Wno-error=<warning name>where<warning name>是您不希望将其视为错误的警告的名称来处理特定的警告。

如果要完全禁用所有警告,请使用-w(不推荐)。


来源: http: //gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Warning-Options.html

于 2012-07-19T12:55:16.383 回答
19

解决方案:

CFLAGS=-Wno-error ./configure
于 2020-03-13T13:41:43.093 回答
13

按照本文中的-Werror建议,从您的 Make 或 CMake 文件中删除

于 2017-09-29T22:02:02.697 回答
4

-Wall-Werror编译器选项可能会导致它,请检查是否在编译器设置中使用了这些选项。

于 2016-08-28T19:22:29.743 回答
4

如果你正在编译 linux 内核。例如,如果要禁用“未使用但设置变量”的警告,则将其视为错误。您可以添加一个语句:

KBUILD_CFLAGS += $(call cc-option,-Wno-error=unused-but-set-variable,)

在你的 Makefile

于 2016-11-24T13:15:31.750 回答
3

感谢所有有用的建议。我终于确保我的代码中没有警告,但再次从 sqlite3 收到此警告:

Assuming signed overflow does not occur when assuming that (X - c) <= X is always true

我通过添加以下 CFLAG 来修复它:

-fno-strict-overflow
于 2012-07-20T10:54:11.727 回答