问题是在Windows上编译良好的相同代码无法在Ubuntu上编译。每次我收到此错误:
cc1: warnings being treated as errors
现在,这是一个很大的代码库,我不喜欢修复所有警告。
有什么方法可以成功编译,尽管有警告吗?
答案 0 :(得分:64)
当然,找到-Werror
设置的位置并删除该标志。然后警告只是警告。
答案 1 :(得分:25)
您可以使用-Wno-error
对所有警告进行处理。您可以使用-Wno-error=<warning name>
来处理特定警告,其中<warning name>
是您不希望将其视为错误的警告的名称。
如果您想完全禁用所有警告,请使用-w
(不推荐)。
来源:http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Warning-Options.html
答案 2 :(得分:9)
解决方案:
CFLAGS=-Wno-error ./configure
答案 3 :(得分:4)
如果你正在编译linux内核。例如,如果要禁用&#34; unused-but-set-variable&#34;被视为错误。您可以添加声明:
KBUILD_CFLAGS += $(call cc-option,-Wno-error=unused-but-set-variable,)
答案 4 :(得分:4)
按照建议in this post
从Make或CMake文件中删除java.util.MissingFormatArgumentException: Format specifier '%2d'
at java.util.Formatter.format(Formatter.java:2519)
at java.io.PrintStream.format(PrintStream.java:970)
at java.io.PrintStream.printf(PrintStream.java:871)
at Survey.main(Survey.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
答案 5 :(得分:2)
感谢所有有用的建议。我终于确保我的代码中没有警告,但是再次从sqlite3收到此警告:
Assuming signed overflow does not occur when assuming that (X - c) <= X is always true
我通过添加以下CFLAG来修复:
-fno-strict-overflow
答案 6 :(得分:1)
-Wall
和-Werror
编译器选项可能会导致它,请检查它们是否在编译器设置中使用。