Ist es möglich, den GNU c ++ - Compiler anzuweisen, nach 5 gefundenen Fehlern anzuhalten? Kann dies nicht in der Dokumentation finden.
Antworten:
Die Befehlszeilenoption weist den Compiler an, nach N aufzugeben-fmax-errors=N
Fehlern . Diese Option ist in GCC 4.6 und höher verfügbar.
Die Befehlszeilenoption -Wfatal-errors
weist den Compiler an, nach einem Fehler aufzugeben . Diese Option ist in GCC 4.0 und höher verfügbar.
In beiden Fällen zählen Warnungen nicht zum Grenzwert, es sei denn, Sie geben dies ebenfalls an -Werror
.
-Wuninitialized
falsch positive Ergebnisse erhält, sind: Es verschwendet I-Cache für tote, aber nicht nachweislich tote Speicheranweisungen; und wenn sich etwas ändert, das die Warnung wirklich positiv macht, wollen wir, dass Valgrind sie fängt.
-fmax-errors
Flagge nicht (ab arm-none-eabi-gcc 5.4.1). Ich habe die Option verwendet -finstrument-functions
und aufgrund der undefinierten __cyg_profile_func_enter
Funktion Hunderte von Fehlern erhalten .
Sie können die Option gcc verwenden:
-fmax-errors=5
für diesen Zweck.
Ich würde eine solche Option ebenfalls begrüßen. Im Moment verwende ich die folgende Problemumgehung, um die ersten fünf Fehler zu erhalten:
<make> 2>&1|grep error|head -5
Ich muss fragen, warum Sie das tun möchten. Manchmal ist der im Code vorhandene Fehler nicht der erste oder sogar in den ersten fünf Fehlern gefundene. Manchmal ist es darüber hinaus und erst erkennbar, wenn Sie in der Liste nach unten scrollen. Eine bessere Methode könnte darin bestehen, Ihren Code aufzubrechen und in kleinere Bibliotheken zu stellen, wenn Sie Probleme mit den Kompilierungszeiten haben. Oder wenn Sie Probleme haben, wenn Sie vom Bildschirm einer Befehlszeile scrollen, verwenden Sie den Operator '>>', um die Nachrichten in eine Datei zu leiten.
-Werror
. Ich glaube, dass Warnungen unbedingt so behandelt werden sollten , als wären sie Fehler, da die meisten Warnungen ein Hinweis auf fehlerhaften Code sind.