4 Stimmen

Werror ignoriert bestimmte Dateien

Ich frage mich, ob es möglich ist, in gcc/g++ bestimmte Dateien von Werror auszuschließen (Dateien, zu denen ich keinen Quellcode zur Änderung habe), damit ich Werror weiterhin ungehindert verwenden kann.

3voto

Sam Miller Punkte 23398

Verwenden Sie Pragma-Direktiven mit einer neueren (ich glaube 4.2) Version von gcc, um -Werror für bestimmte Header auszuschalten, bevor sie eingebunden werden.

Sie könnten Antworten auf Ihre früheren Fragen akzeptieren wollen.

0voto

Anthony Punkte 11717

Mein einziger Gedanke ist, die Dateien, die Sie getrennt mit -Werror bearbeiten können, zu kompilieren und sie dann mit den anderen Objekt-/Bibliotheksdateien ohne -Werror zu verknüpfen.

0voto

FooF Punkte 3958

@Sam Miller hat bereits die Referenzdokumentation darüber gegeben, wie das gemacht wird...

Sie können bestimmte Warnungen vorübergehend mit #pragma GCC diagnostics warning "-W" deaktivieren. Zum Beispiel:

#pragma GCC diagnostic push
# pragma GCC diagnostic warning "-Wreturn-type"
# pragma GCC diagnostic warning "-Wmissing-braces"
# include "legacy-crap.h"
#pragma GCC diagnostic pop

Neuere gcc drucken den Namen der Diagnosekategorie in Klammern als Teil der Warnung/Fehlermeldung:

warning-test.c:11:1: warning: return type defaults to ‘int’ [-Wreturn-type]

oder

warning-test.c:11:1: error: return type defaults to ‘int’ [-Wreturn-type]

Dies kann verwendet werden, um genau die Diagnosen auszuwählen, die als Warnung anstatt als Fehler behandelt werden sollten, während die Verarbeitung des von Dritten stammenden Mists erfolgt, den Sie nicht ändern können. Ich kenne keinen Kurzbefehl, um alle Warnungen zu deaktivieren ("-Wall" wird nicht den gewünschten Effekt für das oben genannte #pragma haben), aber ich denke es ist auch gut, hier explizit zu sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X