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

时间:2015-11-19 14:20:52

标签: c++ eclipse makefile g++ compiler-warnings

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

我该怎么做?

更新

似乎用于诊断的语法:

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

2 个答案:

答案 0 :(得分:7)

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

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

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

#pragma GCC diagnostic ignored "-Wno-unused-local-typedefs"

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

答案 1 :(得分:1)

要禁用所有警告

# Makefile

# disable all warnings
CXXFLAGS += -w

要禁用特定*.cpp文件的警告,请尝试为相关目标文件指定target-specific variables

# Makefile

# disable warnings on foobar.cpp
foobar.o: CXXFLAGS += -w

参考文献: