如何禁用没有命令行开关的gcc警告?

sha*_*oth 12 c c++ command-line gcc gcc-warning

我收到以下警告:

warning: 'X' is initialized and declared 'extern'
Run Code Online (Sandbox Code Playgroud)

它看起来没什么大不了的,我可以禁用它。在我的情况下,更改代码并不是一个好主意,因为我无法控制代码,只需要编译即可。所以我想禁用警告。

如果它-WSomeDefect旁边有一个键,那么我可以使用-Wno-SomeDefect命令行开关,但此警告似乎没有明显的开关。

如何禁用此类警告?

wal*_*nut 5

对于所提出的问题的直接回答:

从 GCC 的源代码中可以看出,没有(半)特定的开关来禁用此警告。它似乎只能通过禁用所有警告 ( -w) 或通过 包含有问题的代码作为系统标头来禁用-isystem,这两者在抑制的警告中都是非特定的。

这里有一个关于 GCC 的相关开放错误报告,这里有一个针对类似警告情况而没有开关的开放元错误。

如果您不想使用这两种非特定抑制机制,那么您可能必须在 GCC 中添加一个附加标志,或者等待 bug 得到解决才能禁用此特定警告。