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.
Antworten
Zu viele Anzeigen?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.
@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.