GCC (GNU Compiler Collection, ursprünglich GNU C Compiler) ist die Standard-Compiler-Suite auf Linux. Der Befehl gcc übersetzt C-Quellcode, g++ C++. Dahinter stecken die Frontends für C, C++, Objective-C, Fortran, Ada und Go.
Grundaufrufe
gcc hello.c -o hello # kompilieren und linken
gcc -c hello.c # nur Objektdatei hello.o (ohne Linken)
gcc -E hello.c # nur Präprozessor (expandierte Quelle)
gcc -S hello.c # Assembler-Quelle hello.s
g++ main.cpp -o programm # C++-Variante
Wichtige Optionen
-Wall -Wextra: gängige Warnungen aktivieren,-Werror: Warnungen als Fehler behandeln-O0bis-O3: Optimierungsstufen,-Os: Größe optimieren-g: Debug-Informationen (für GDB),-g3: zusätzliche Makros-std=c17bzw.-std=c++17: Sprachstandard,-pedantic: strikte Standardkonformität-Iinclude: Include-Verzeichnis,-Llib+-lm: Bibliothekspfad und -name-pthread: POSIX-Threads einbinden,-fsanitize=address: AddressSanitizer
Compiler-Pipeline
GCC durchläuft vier Phasen: Präprozessor (-E), Compiler (-S, C nach Assembler), Assembler (-c, Objektdatei) und Linker (fertiges Programm). Die Werkzeuge dahinter sind cpp, cc1, as und ld.
Verwandte Grundlagen: Compiler, C/C++-Befehle, Clang-Befehle, GDB-Befehle, Make-Befehle.