7 votes

silence -Wparentheses-equality erreur

Je construis un logiciel en utilisant boost 1.48 sur osx 10.8 avec gcc version 4.2.1 et j'ai commencé à avoir des problèmes avec le système -Wparentheses-equality des avertissements pour certaines des sources de boost.

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

Je changerais bien le code mais je ne veux pas bricoler la bibliothèque, comment faire taire l'avertissement et faire en sorte que le compilateur continue ?

11voto

Luc Danton Points 21421

De la Manuel GCC :

La plupart d'entre eux ont des formes positives et négatives ; la forme négative de -ffoo serait -fno-foo .

Essayez -Wno-parentheses-equality .

2voto

bames53 Points 38303

Comme alternative à la simple désactivation de l'avertissement, vous pouvez également spécifier certains chemins à compter comme des chemins 'système'. Les avertissements sont supprimés pour les en-têtes système, vous pouvez donc déclarer que les en-têtes d'une bibliothèque particulière sont des en-têtes 'système' et que vous ne vous souciez pas des avertissements qu'ils contiennent.

L'argument de clang pour cela est --system-header-prefix=<prefix>

Ainsi, par exemple, vous pourriez dire "--system-header-prefix=boost/"

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

Et à en juger par le message d'erreur, vous utilisez en fait clang et non gcc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X