12

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

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

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

4

3 回答 3

5

啊,似乎该-pedantic选项启用了此警告,并且似乎没有针对它的特定覆盖,就像大多数其他 GCC 警告一样。删除-pedantic会消除有关警告的警告。

于 2013-06-01T13:01:38.400 回答
0
#ifdef __GNUC__
#warning "no warning here!"
#endif

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

更新:根据这个相关问题,没有干净的解决方案可以选择性地禁用有关 gnu 特定 #pragma 的警告

于 2013-06-01T13:03:55.440 回答
-1

实际上,以下应该有效。有了它,您可以抑制/忽略 gcc 警告。

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

...

#pragma GCC diagnostic pop
于 2013-07-03T12:11:30.350 回答