使用qmake / gcc有条件地禁用警告?

时间:2009-04-22 05:08:04

标签: c++ gcc conditional compiler-warnings qmake

我参与了用Qt编写的软件项目,并在Linux上使用qmake和gcc构建。我们必须链接到质量相当低并且发出大量警告的第三方库。我想在我们的源代码中使用-W -Wall,但是将-w传递给讨厌的第三方库以保持控制台没有噪音和混乱,因此我们可以专注于我们的代码质量。

在qmake中,有没有办法有条件地将CFLAGS / CXXFLAGS添加到某些文件和库中?

5 个答案:

答案 0 :(得分:5)

Jonathan,我认为问题在于您的源文件包含来自第三方库的头文件,并且您想要关闭后者的警告。

凯文,我认为您可以使用编译指示来控制警告:gcc diagnostic pragmas

您可以在第三方库的#includes之前和之后添加这些。

答案 1 :(得分:3)

如果使用-isystem包含库,该怎么办?

在项目文件中,例如:

QMAKE_CXXFLAGS += -isystem /usr/local/boost_1_44_0

答案 2 :(得分:1)

凯文,

qmake CONFIG+=debug QMAKE_CXXFLAGS_WARN_ON=-w QMAKE_CFLAGS_WARN_ON=-w

应该这样做 (如果你愿意,可以使用CONFIG + = release。)

答案 3 :(得分:0)

通常,您将在与您自己的代码不同的目录中构建第三方库,因此您将拥有不同的makefile,因此您可以为该编译添加一组不同的标志。

如果您已将第三方库代码与您自己的代码混合在一起,那么您已经为维护噩梦做好了准备。

答案 4 :(得分:0)

正如Martin写道通过

添加include目录
QMAKE_CXXFLAGS += -isystem ...

仅在相应的标题中禁止警告。无需为项目的任何源文件(甚至项目范围)禁用警告,也不需要使用#pragmas或包装文件。

请注意,如果您正在使用QtCreator,您仍然(即另外)想要将目录添加到INCLUDEPATH,以便索引器选择标题。