当使用#warning
指令时,而不是一个警告,我得到两个 - 我生成的那个,加上一个额外的
warning: #warning is a GCC extension [enabled by default]
。
我可以使用-Wno-cpp
来抑制#warning指令的结果本身,但这与我想要的相反。
我可以通过使用#pragma message()
来解决这个问题,但这似乎使#warning指令变得毫无意义 - 是否无法抑制此警告警告?
答案 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