如何防止"#warning"消息被视为错误?

Sta*_*ked 8 c++ gcc

我正在尝试编译-Werror在现有代码库中引入标志.我遇到的一个问题是在某些地方#warning用于显示信息性消息.这些不应被视为错误.

一种解决方案是使用#pragma message,但旧版本的gcc似乎并不支持这种解决方案.(我们的构建服务器使用gcc 4.1.2).

谁能帮我解决这个问题?

Jef*_*kin 4

在 gcc-4.6 及更高版本中,您可以使用-Wno-error=cpp. 至少在 Lion 及更高版本发布的 clang 中,您可以使用-Wno-error=#warnings. 但由于您的构建服务器使用古老的 gcc,因此您可能不太走运。

一般来说,通过 -fdiagnostics-show-option 可以让警告显示如下输出:

test.cc:1:2: warning: #warning hello [-Wcpp]
Run Code Online (Sandbox Code Playgroud)

它告诉您一个控制警告的警告标志。在 gcc >=4.6 和 clang 中,这是默认设置,因此知道通过它可能不再有用。