2012-09-01 28 views
5

osx 10.8でgsバージョン4.2.1でboost 1.48を使用してソフトウェアをビルドすると、いくつかのブーストソースについて-Wparentheses-equality警告が表示され始めました。無音 - 括弧 - 等価エラー

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

私は、コードを変更しますが、私はどのように私は警告を沈黙し、コンパイラは継続するだろう、ライブラリをいじくり回すしたいいけませんか? GCC manualから

答えて

10

これらのほとんどは、両方の正と負のフォームを持っています。 -ffooの否定形式は-fno-fooとなります。

お試し-Wno-parentheses-equality

+0

これはかなり新しいですが、私はmakeコマンドの引数として-Woolean-parentheses-equalityを追加するべきですか?私はそれを試みたが、私はまだエラーが発生する –

+0

@jonathantopfいいえ、これはコンパイラのオプションです。あなたがMakeを使用しているのであれば、通常これは例えば以下のような変数に格納されます。 'CXXFLAGS'。 '-Wall'(そこに保存される共通のオプション)も探して、このオプションをその隣に追加してみてください。 –

3

単に警告を無効にする代わりに、「システム」パスとしてカウントする特定のパスを指定することもできます。システムヘッダーの警告は表示されないので、特定のライブラリヘッダーが「システム」ヘッダーであること、およびその中の警告は気にしないことを宣言できます。このため

打ち鳴らすの引数には、たとえば、あなたが"--system-header-prefix=boost/"

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

そして、あなたが実際のgcc打ち鳴らすを使用していないされ、エラーメッセージから判断すると言うかもしれないので、--system-header-prefix=<prefix>

です。