2012-09-01 2 views
5

Ich baue som Software mit boost 1.48 auf osx 10.8 mit GCC Version 4.2.1 und ich habe angefangen, -Wparentheses-equality Warnungen für einige der Boost-Quelle zu bekommen.silence -Weparentheses-Gleichheitsfehler

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

Ich würde den Code ändern, aber ich mag nicht mit der Bibliothek basteln, wie würde ich die Warnung zum Schweigen bringen und die Compiler machen weiter?

Antwort

10

Von den GCC manual:

Die meisten davon haben sowohl positive als auch negative Formen; die negative Form von -ffoo wäre -fno-foo.

Versuchen Sie -Wno-parentheses-equality.

+0

ich bin ziemlich neu zu diesem, meinst du ich sollte -Wno-Klammern-Gleichheit als Argument zum Make-Befehl hinzufügen? Ich habe das versucht und ich bekomme immer noch den Fehler –

+0

@jonathantopf Nein, das ist eine Option für den Compiler. Wenn Sie Make verwenden, wird dies normalerweise in einer Variablen wie z.B. 'CXXFLAGS'. Versuchen Sie, nach "-Wall" zu suchen (eine gebräuchliche Option, die dort gespeichert wird) und fügen Sie diese Option hinzu. –

3

Alternativ zur einfachen Deaktivierung der Warnung können Sie auch bestimmte Pfade angeben, die als 'Systempfade' gelten. Warnungen werden für Systemheader unterdrückt, so dass Sie festlegen können, dass bestimmte Header einer Bibliothek Systemkopfzeilen sind und dass Warnungen in ihnen keine Rolle spielen.

Klirren Argument dafür ist, --system-header-prefix=<prefix>

So zum Beispiel Sie "--system-header-prefix=boost/"

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

sagen könnte Und durch die Fehlermeldung zu urteilen Sie verwenden eigentlich Klirren und nicht gcc.

Verwandte Themen