Wichtige Compiler-Flags
Das Standardverhalten eines Compilers entspricht häufig nicht den Erwartungen. Es ist daher ratsam notwendige Optionen zu setzen, um das gewünschte Verhalten zu erzielen.
Wird ein Compiler ohne anders lautende Option gestartet, so wird er keine Warnung über möglicherweise fehlerhaften Code erzeugen. Nur echte Fehler führen zu einem Abbruch der Compilierung. Eventuelle Fehler werden so häufig nicht erkannt. Es ist daher sinnvoll den Compiler über eine entsprechende Option so zu konfigurieren, dass er diese Fehler erzeugt.
Ein weiteres Beispiel für wichtige Compiler-Option ist der "Debug Modus". Standardmäßig wird ein Compiler keine Debug-Symbole erzeugen. Ein Debuggen des Codes ist so nicht möglich. Erst das Setzen der entsprechenden Option fügt die notwendigen Debug-Symbole ein.
Beispiele für typische Compiler-Optionen:
Compiler-Option | >>> | Beschreibung |
---|---|---|
-g | Erzeuge Debug-Symbole damit ein Debuggen des Codes möglich wird. | |
-O0 | Deaktiviere alle Optimierungen, damit der Code exakt so ausgeführt wird, wie er programmiert wurde. Dies ist ebenfalls für das Debuggen notwendig. | |
-O1 | Aktiviere einfache Optimierungen | |
-O2 | Aktiviere alle Standardoptimierungen | |
-O3 | Aktiviere alle verfügbaren Optimierungen | |
-Osize | Optimiere das Binary so, dass es möglich klein ist. | |
-Wall | Zeige alle Standard-Warnungen an, die während der Compilierung auftreten. | |
-Wextra | Zeige auch ungewöhnliche Warnungen an, die bei der Code-Analyse auffallen. | |
-Wpedantic | Zeige alle Warnungen an, die möglich sind. Der Code wird nach Kompatibilität mit der ISO-C/ISO-C++ geprüft. Quellcode, der mit dieser Option fehlerfrei übersetzbar ist, kann mit jedem ISO-C/ISO-C++-kompatiblen Compiler ohne Anpassungen übersetzt werden. | |
-Werror | Wandle Warnungen in Fehler um. Die Compilierung wird abgebrochen, sobald eine Warnung erzeugt wurde. | |
-fPIC | Erzeuge positionsunabhängigen Code. Dies ist notwendig für Funktionsbilbliotheken. |