gcc 如何编译而不将警告视为错误?

7qhs6swi  于 2022-11-13  发布在  其他
关注(0)|答案(7)|浏览(680)

问题是,同样的代码在Windows上编译得很好,却无法在Ubuntu上编译。每次我都得到这个错误:
cc1:将警告视为错误
现在,它的代码库很大,我不喜欢修复所有的警告。
有没有方法可以在出现警告的情况下成功编译?

qcuzuvrc

qcuzuvrc1#

当然,找到设置-Werror的位置并删除该标志。这样警告就只是警告了。

wqnecbli

wqnecbli2#

您可以使用-Wno-error将所有警告都视为错误。您可以使用-Wno-error=<warning name>将特定警告视为错误,其中<warning name>是您不想视为错误的警告名称。
如果要完全 * 禁用 * 所有警告,请使用-w(不推荐)。
来源:* 3.8 Options to Request or Suppress Warnings *

dpiehjr4

dpiehjr43#

解决方法:

CFLAGS=-Wno-error ./configure
nhaq1z21

nhaq1z214#

从Make或CMake文件中删除-Werror,如建议的in this post

xesrikrc

xesrikrc5#

-Wall和-Werror编译器选项可能会导致此错误。请检查编译器设置中是否使用了这些选项。

ioekq8ef

ioekq8ef6#

如果您正在编译Linux内核:
例如,如果要禁用“unused-but-set-variable”已被视为错误的警告,则可以添加以下语句:

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

在您的Makefile中。

rjee0c15

rjee0c157#

感谢所有有用的建议。我终于确定我的代码中没有警告,但再次从SQLite 3得到这个警告:
假设(X - c)〈= X始终为真时不发生有符号溢出
我通过添加 CFLAG-fno-strict-overflow修复了这个问题。

相关问题