6

我在 osx 10.8 和 gcc 版本 4.2.1 上使用 boost 1.48 构建 som 软件,我已经开始收到-Wparentheses-equality一些 boost 源的警告。

  equality comparison with extraneous parentheses
  [-Werror,-Wparentheses-equality]
        else if((state->type == syntax_element_long_set_rep)) 

我会更改代码,但我不想修改库,我将如何使警告静音并使编译器继续?

4

2 回答 2

11

GCC 手册

其中大部分既有正面形式也有负面形式;的否定形式-ffoo-fno-foo.

试试-Wno-parentheses-equality

于 2012-09-01T20:50:46.620 回答
2

作为简单禁用警告的替代方法,您还可以指定某些路径以计为“系统”路径。系统标头的警告被禁止,因此您可以声明特定库的标头是“系统”标头,并且您不关心其中的警告。

clang对此的论点是--system-header-prefix=<prefix>

所以例如你可能会说"--system-header-prefix=boost/"

http://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-in-system-headers

根据错误消息判断,您实际上使用的是 clang 而不是 gcc。

于 2014-05-06T18:01:58.447 回答