使用g ++构建时如何抑制某些文件中的警告?

mrg*_*oom 2 c++ eclipse makefile g++ compiler-warnings

例如,我正在构建包含多个*.cpp文件的项目,我只需要从这些文件中提取警告.我使用Eclipse项目中使用的Makefile.

我该怎么做?

更新:

似乎诊断编译用于此:

https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html

Mat*_*t G 7

这取决于您构建项目的方式以及编译器.我假设你在Linux上并且你正在使用GCC.如果没有,类似的技术也适用于Visual Studio和其他编译器.

如果您有一个Makefile可以轻松修改的,可以提供不同的编译器标志来构建每个文件.禁用特定警告就像添加-Wno-<warning-name>到构建行一样简单,例如:-Wno-unused-local-typedefs.

如果您无法轻松修改makefile,可以#pragma直接将s放入源代码中.例如,您可以将这样的行添加到C++文件的顶部:

#pragma GCC diagnostic ignored "-Wno-unused-local-typedefs"
Run Code Online (Sandbox Code Playgroud)

当然,真正的解决方案是修复警告.很少有警告不值得注意:从长远来看,经常忽略警告会让你更加痛苦!

  • 似乎当我将 `#pragma GCC Diagnosticignored` 添加到 *.h 文件时,它也适用于包含此 *.h 的 *.cpp 文件,这不是所需的行为,如何修复它? (2认同)