Um während der Kompilierung in GCC die Zwischenschritte, d.h. die Ausgabe des Präprozessors, den Assembler-Code sowie die Object-Files, permanent (statt lediglich temporär) zu speichern, kann während des Kompilierungsvorgangs die Option -save-temps gesetzt.
Die Kompilierung einer Datei "helloworld.c" würde dann folgendermaßen aussehen:
gcc -save-temps -o helloworld helloworld.c
Es werden folgende Dateien hierbei erstellt:
- helloworld ist die ausführbare Datei
- helloworld.c enthält den Source, der vom Entwickler geschrieben wurde
- helloworld.i enthält die Ausgabe des Präprozessors, hier sind z.B. alle defines, includes, etc. bereits aufgelöst
- helloworld.o ist die Objektdatei
- helloworld.s enthält den Assembler-Code
Eine sinnvolle Option für alle, die den Kompilierungsprozess genauer verstehen möchten oder Entwickler, die bestimmte Fehler finden wollen, die z.B. beim Präprozessoroutput auffallen würden. (z.B. warum genau ein Include-Guard benötigt wird)