有什么方法可以让g ++只发出与我的文件有关的警告吗?

时间:2010-07-08 16:35:52

标签: c++ c gcc g++ warnings

我喜欢用-Wall编译我的代码,有时甚至是-dantantic。它部分是一种风格的东西,部分是它偶尔发出非常非常有用的警告(例如使用=而不是==)。

然而,我的一些标题的作者显然不是这样的粘合剂。使用两个警告级别中的任何一个进行编译会产生巨大的输出混乱,完全违背了首先编译这种方式的目的。

那么如何让编译器忽略这些警告呢?

4 个答案:

答案 0 :(得分:8)

JS Bangs' answer之外,您可以让GCC将其视为system headers,这会对这些标头禁用所有警告(#warning指令除外)。

如果-isystem开关无效,您可以使用仅包含相应行的更简单的标头包装所有违规标头:

#pragma GCC system_header

答案 1 :(得分:7)

在调用GCC时,使用-isystem代替-I来提供有问题标头的路径应该会对这些标头的警告进行静音。请参阅GCC docsthis SO question

答案 2 :(得分:1)

使用适当的#pragma在包含错误标头之前禁用警告,然后重新启用警告。 Docs on the GCC pragmas.

答案 3 :(得分:0)

看起来它们是“你的”标题,意味着你可以自己修改它们或者让“作家”为你做。如果你想追求无警告生活,那就修好那些标题:)。

或者你当然可以使用pragma's,但它们是反式和丑陋的:)