compiling

Wie deaktiviere ich g++Anzeige von Notizen für Fehler

Beim Kompilieren werden Fehler oft von einer langen Reihe von Hinweisen (cyan)begleitet.Gibt es ein G++-Flag,um dies zu deaktivieren und nur den Fehler selbst anzuzeigen?

Der Compiler wird dies nicht für Sie tun, aber (bisher ...) folgen die Compiler-Entwickler einer langjährigen (über 30 Jahre) Konvention, die von anderen Compilern übernommen wurde und die wesentlichen Informationen in der ersten Zeile mit error: oder warning: um die Warnung zu markieren. Wenn Sie stderr für diese suchen, sehen Sie die minimalen Warnungs-/Fehlerinformationen.

grep ist ein guter Ausgangspunkt (und die Ausgabe von "grep -n" ist an sich schon nützlich). Diese Meldungen folgen einem Muster aus Dateiname, Zeilennummer und Meldung, das mehreren Tools gemeinsam ist. Ich habe das hier in vi-like-emacs verwendet .

Vor ziemlich kurzer Zeit (2014) hat gcc/g++ damit begonnen, den Nachrichten einen "Aufrufstapel" hinzuzufügen, der zusätzliche Informationen liefert. Das beruht auf einer Änderung am Präprozessor, um die Zeilennummern zu verfolgen, die mit einer Option -P (hier notiert ) abgeschaltet werden kann, aber das scheint unvollständig in ein Formular integriert zu sein, das den aufrufenden Stapel unterdrücken würde.

Die Verwendung von Clang würde dabei nicht viel helfen; es kann auch sehr ausführlich sein. Die gcc/g++-Entwicklung hat viele Meldungen hinzugefügt, wie hier erwähnt .




Beim Kompilieren werden Fehler oft von einer langen Spur (Cyan) begleitet. Gibt es ein g ++ - Flag, um dies zu deaktivieren und nur den Fehler selbst anzuzeigen?

  • Sie können ein altes und nicht mehr unterstütztes Tool wie STLFilt verwenden .

  • Sie können zu Clang wechseln oder es verwenden, um nur Fehler zu melden und Ihre endgültige Kompilierung in GNU g++ durchzuführen .

  • Sie können sich mit STL besser vertraut machen,was die Entschlüsselung erleichtert.

    Ein gutes Verständnis der STL und ihrer Verwendung hilft Ihnen, viele Fehler von vornherein zu vermeiden. Zweitens beziehen sich Fehlermeldungen häufig auf Funktionen in der STL-Quelle – wenn Sie eine ungefähre Vorstellung davon haben, wie die STL implementiert ist, kann dies äußerst hilfreich sein, um zu entschlüsseln, worum es in der Fehlermeldung geht. Die neuesten Versionen des g++- Compilers verbessern manchmal die Ausgabe, wodurch sie hilfreicher und weniger ausführlich wird.

Das ist nicht unbedingt das,was Sie wollen,aber es kann die Ausgabe verkürzen:

  • Verwenden Sie das Flag -fmax-errors oder die Option -Wfatal-errors :

    -fmax-errors=n

    Begrenzt die maximale Anzahl von Fehlermeldungen auf n, an welchem ​​Punkt GCC aussteigt, anstatt zu versuchen, den Quellcode weiter zu verarbeiten. Wenn n 0 ist (Standardwert), gibt es keine Begrenzung für die Anzahl der erzeugten Fehlermeldungen. Wenn auch -Wfatal-errors angegeben ist, hat -Wfatal-errors Vorrang vor dieser Option.

    -Wfatal-errors

    Diese Option veranlasst den Compiler,die Kompilierung beim ersten aufgetretenen Fehler abzubrechen,anstatt zu versuchen,weiterzumachen und weitere Fehlermeldungen auszugeben.