沉默-W括号-相等错误

问题描述 投票:0回答:2

我正在 osx 10.8 上使用 boost 1.48 和 gcc 版本 4.2.1 构建 som 软件,并且我已经开始收到一些 boost 源的

-Wparentheses-equality
警告。

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

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

c++ boost
2个回答
12
投票

摘自GCC手册

其中大多数都有积极和消极的形式;

-ffoo
的否定形式是
-fno-foo

尝试

-Wno-parentheses-equality


2
投票

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

clang对此的论据是

--system-header-prefix=<prefix>

例如,您可能会说

"--system-header-prefix=boost/"

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

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

© www.soinside.com 2019 - 2024. All rights reserved.