使用该#warning
指令时,我得到的不是一个警告,而是两个 - 我生成的一个,加上一个额外的
warning: #warning is a GCC extension [enabled by default]
.
我可以用 来抑制#warning 指令的结果本身,-Wno-cpp
但这与我想要的相反。
我可以通过使用来解决这个问题,#pragma message()
但这似乎使#warning 指令变得毫无意义——有没有办法抑制这个警告警告?
使用该#warning
指令时,我得到的不是一个警告,而是两个 - 我生成的一个,加上一个额外的
warning: #warning is a GCC extension [enabled by default]
.
我可以用 来抑制#warning 指令的结果本身,-Wno-cpp
但这与我想要的相反。
我可以通过使用来解决这个问题,#pragma message()
但这似乎使#warning 指令变得毫无意义——有没有办法抑制这个警告警告?
啊,似乎该-pedantic
选项启用了此警告,并且似乎没有针对它的特定覆盖,就像大多数其他 GCC 警告一样。删除-pedantic
会消除有关警告的警告。
#ifdef __GNUC__
#warning "no warning here!"
#endif
将使用或不使用 gcc 进行编译,即使使用 -pedantic
,但它仍会发出警告(如果警告升级为错误,则会失败)。
更新:根据这个相关问题,没有干净的解决方案可以选择性地禁用有关 gnu 特定 #pragma 的警告
实际上,以下应该有效。有了它,您可以抑制/忽略 gcc 警告。
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcpp"
...
#pragma GCC diagnostic pop