【问题标题】:silence -Wparentheses-equality error沉默 - 括号 - 相等错误
【发布时间】:2012-09-01 20:32:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ boost compiler-construction


    【解决方案1】:

    来自GCC manual

    其中大部分都有正面和负面的形式; -ffoo 的否定形式是 -fno-foo

    试试-Wno-parentheses-equality

    【讨论】:

    • 我对此很陌生,你的意思是我应该添加 -Wno-parentheses-equality 作为 make 命令的参数吗?我试过了,我仍然得到错误
    • @jonathantopf 不,这是编译器的一个选项。如果您使用的是 Make,那么通常将其存储在一个变量中,例如CXXFLAGS。尝试查找-Wall(也将存储在那里的常用选项)并将此选项添加到它旁边。
    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-24
      • 2020-05-28
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      相关资源
      最近更新 更多