如何抑制 g++ 中的特定警告

2022-01-23 00:00:00 gcc g++ c++

我想禁止来自 g++ 的特定警告.我知道 -Wno-XXX 标志,但我正在寻找更具体的东西.我想要-Weffc++ 中的一些 警告,但不是全部.类似于您可以使用 lint 执行的操作 - 禁用特定消息.

I want to suppress specific warnings from g++. I'm aware of the -Wno-XXX flag, but I'm looking for something more specific. I want some of the warnings in -Weffc++, but not all of them. Something like what you can do with lint - disable specific messages.

gcc 中是否有内置方法可以做到这一点?我必须编写包装脚本吗?

Is there a built in way in gcc to do this? Do I have to write a wrapper script?

推荐答案

很遗憾,g++ 没有提供这个功能. 在 VC++ 中,你可以使用 #pragma warning 禁用某些特定警告.在 gcc 中,您可以拥有的最接近的是 diagnostic pragmas,它让您为某些文件或项目启用/禁用某些类型的诊断.

Unfortunately, this feature isn't provided by g++. In VC++, you could use #pragma warning to disable some specific warnings. In gcc, the closest you can have is diagnostic pragmas, which let you enable/disable certain types of diagnostics for certain files or projects.

编辑:GCC 从 4.6.4 开始支持推送/弹出警告(参见 更改日志)

Edit: GCC supports pushing/popping warnings since 4.6.4 (see changelog)

相关文章