如何禁用关于#warning指令作为GCC扩展的GCC警告?

时间:2013-06-01 12:53:09

标签: gcc warnings compiler-warnings gcc-warning

当使用#warning指令时,而不是一个警告,我得到两个 - 我生成的那个,加上一个额外的 warning: #warning is a GCC extension [enabled by default]

我可以使用-Wno-cpp来抑制#warning指令的结果本身,但这与我想要的相反。

我可以通过使用#pragma message()来解决这个问题,但这似乎使#warning指令变得毫无意义 - 是否无法抑制此警告警告?

3 个答案:

答案 0 :(得分:2)

啊,似乎-pedantic选项启用此警告,并且似乎没有特定的覆盖,因为大多数其他GCC警告。删除-pedantic会删除有关警告的警告。

答案 1 :(得分:0)

#ifdef __GNUC__
#warning "no warning here!"
#endif

将使用或不使用gcc进行编译,即使使用-pedantic,它仍然会发出警告,(如果警告升级为错误,则会失败)。

更新: 根据{{​​3}},没有干净的解决方案可以选择性地禁用有关gnu特定#pragma s的警告

答案 2 :(得分:0)

实际上,以下内容应该有效。这样你可以抑制/忽略gcc警告。

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcpp"

...

#pragma GCC diagnostic pop