Ich verwende oft gcc oder g++ zum Kompilieren von Code, kann mich aber oft nicht an einige Kompilierungsparameter erinnern. Ich werde sie hier aufzeichnen.
Mehrere Phasen der Codekompilierung: Vorverarbeitung – Kompilierung – Assemblierung – Verknüpfung.
Vorverarbeitung: Makros erweitern, Header-Dateien.
Kompilieren: Überprüfen Sie die Syntax und kompilieren Sie sie in eine Assembly-Datei, wenn kein Problem vorliegt.
Assembly: Kompilieren Sie Assemblydateien in Objektdateien.
Link: Verknüpfen Sie die Zieldateien.
Häufig verwendete Parameter
-ansi unterstützt nur die ANSI-Standard-C-Syntax. Diese Option deaktiviert bestimmte Funktionen von GNU C, wie z. B. die Schlüsselwörter „asm“ oder „typeof“.
-c Kompiliert und generiert nur Objektdateien.
-DMACRO Definiert das MACRO-Makro mit der Zeichenfolge „1“.
-DMACRO=DEFN Definiert das MACRO-Makro mit der Zeichenfolge „DEFN“.
-E führt nur den C-Precompiler aus.
-g Debugging-Informationen generieren. Der GNU-Debugger kann diese Informationen ausnutzen.
-IDIRECTORY Gibt den zusätzlichen Headerdatei-Suchpfad DIRECTORY an.
-LDIRECTORY gibt den zusätzlichen Bibliothekssuchpfad DIRECTORY an.
-lLIBRARY durchsucht beim Herstellen der Verbindung die angegebene Funktionsbibliothek LIBRARY.
-m486 Codeoptimierung für 486.
-o DATEI Erzeugt die angegebene Ausgabedatei. Wird beim Generieren ausführbarer Dateien verwendet.
-O0 führt keine Optimierungsverarbeitung durch.
-O oder -O1 optimiert den generierten Code.
-O2 weitere Optimierung.
-O3 ist weiter optimiert als -O2, einschließlich Inline-Funktionen.
-shared generiert gemeinsam genutzte Objektdateien. Wird normalerweise beim Erstellen gemeinsam genutzter Bibliotheken verwendet.
-static deaktiviert die Verwendung gemeinsamer Verbindungen.
-UMACRO Definiert das MACRO-Makro.
-w generiert keine Warnmeldungen.
-Wall generiert alle Warnmeldungen.
Referenz:
https://blog.csdn.net/technologyleader/article/details/125495452