7

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

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

4

5 回答 5

7

乔纳森,我认为问题在于您的源文件包含来自 3rd 方库的头文件,并且您想关闭后者的警告。

凯文,我认为你可以使用编译指示来控制警告:gcc 诊断编译指示

您可以在任何#includes 之前和之后为 3rd 方库添加这些。

于 2009-04-22T07:00:08.117 回答
3

如果您使用 -isystem 包含您的库怎么办。

在项目文件中,例如:

QMAKE_CXXFLAGS += -isystem /usr/local/boost_1_44_0
于 2011-06-22T09:30:35.650 回答
0

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

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

于 2009-04-22T05:52:46.950 回答
0

凯文,

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

应该这样做(如果您愿意,请使用 CONFIG+=release...)

于 2010-11-13T15:24:02.693 回答
0

正如马丁所写的那样,通过

QMAKE_CXXFLAGS += -isystem ...

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

请注意,如果您使用的是 QtCreator,您仍然需要(即另外)添加目录,INCLUDEPATH以便索引器获取标题。

于 2012-03-24T22:09:19.830 回答