问题是,同样的代码在Windows上编译得很好,却无法在Ubuntu上编译。每次我都得到这个错误:cc1:将警告视为错误现在,它的代码库很大,我不喜欢修复所有的警告。有没有方法可以在出现警告的情况下成功编译?
qcuzuvrc1#
当然,找到设置-Werror的位置并删除该标志。这样警告就只是警告了。
wqnecbli2#
您可以使用-Wno-error将所有警告都视为错误。您可以使用-Wno-error=<warning name>将特定警告视为错误,其中<warning name>是您不想视为错误的警告名称。如果要完全 * 禁用 * 所有警告,请使用-w(不推荐)。来源:* 3.8 Options to Request or Suppress Warnings *
-Wno-error=<warning name>
<warning name>
dpiehjr43#
解决方法:
CFLAGS=-Wno-error ./configure
nhaq1z214#
从Make或CMake文件中删除-Werror,如建议的in this post。
xesrikrc5#
-Wall和-Werror编译器选项可能会导致此错误。请检查编译器设置中是否使用了这些选项。
ioekq8ef6#
如果您正在编译Linux内核:例如,如果要禁用“unused-but-set-variable”已被视为错误的警告,则可以添加以下语句:
KBUILD_CFLAGS += $(call cc-option,-Wno-error=unused-but-set-variable,)
在您的Makefile中。
rjee0c157#
感谢所有有用的建议。我终于确定我的代码中没有警告,但再次从SQLite 3得到这个警告:假设(X - c)〈= X始终为真时不发生有符号溢出我通过添加 CFLAG-fno-strict-overflow修复了这个问题。
7条答案
按热度按时间qcuzuvrc1#
当然,找到设置-Werror的位置并删除该标志。这样警告就只是警告了。
wqnecbli2#
您可以使用-Wno-error将所有警告都视为错误。您可以使用
-Wno-error=<warning name>
将特定警告视为错误,其中<warning name>
是您不想视为错误的警告名称。如果要完全 * 禁用 * 所有警告,请使用-w(不推荐)。
来源:* 3.8 Options to Request or Suppress Warnings *
dpiehjr43#
解决方法:
nhaq1z214#
从Make或CMake文件中删除-Werror,如建议的in this post。
xesrikrc5#
-Wall和-Werror编译器选项可能会导致此错误。请检查编译器设置中是否使用了这些选项。
ioekq8ef6#
如果您正在编译Linux内核:
例如,如果要禁用“unused-but-set-variable”已被视为错误的警告,则可以添加以下语句:
在您的Makefile中。
rjee0c157#
感谢所有有用的建议。我终于确定我的代码中没有警告,但再次从SQLite 3得到这个警告:
假设(X - c)〈= X始终为真时不发生有符号溢出
我通过添加 CFLAG-fno-strict-overflow修复了这个问题。