如何编译没有警告被视为错误?

Sau*_*rma 84 c gcc compiler-warnings

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

cc1: warnings being treated as errors
Run Code Online (Sandbox Code Playgroud)

现在,这是一个很大的代码库,我不喜欢修复所有的警告.

尽管有警告,我还能以任何方式成功编译吗?

Dan*_*her 75

当然,找到-Werror设置的位置并删除该标志.然后警告只是警告.

  • 它必须设置在某处,默认情况下,我知道的任何编译器都不会将警告视为错误.如果你找不到它,你可以尝试使用`-Wno-error`来覆盖它,就像夜间玩家所说的那样.除非在makefile中的`CFLAGS`中设置的标志之后传递`-Werror`,否则这应该有效. (13认同)
  • 感谢Daniel,但是我的项目中没有设置-Werror标志。我应该在其他地方找它吗? (2认同)

orl*_*rlp 28

您可以使用以下方式处理所有警告-Wno-error.你可以让特定的警告被如此对待,通过使用-Wno-error=<warning name>这里<warning name>是您不想视为错误的警告的名称.

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


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


Zib*_*bri 14

解决方案:

CFLAGS=-Wno-error ./configure
Run Code Online (Sandbox Code Playgroud)


And*_*ldo 8

按照这篇文章的-Werror建议从您的Make或CMake文件中删除


Sau*_*rma 3

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

\n
\n

假设 (X - c) <= X 始终为 true 时不会发生有符号溢出

\n
\n

我通过添加CFLAG -fno-strict-overflow修复了这个问题。

\n