next up previous contents index
Nächste Seite: 1.5 Bezeichnungen in der Aufwärts: 1. Das erste Programm Vorherige Seite: 1.3 Das ``Hello World''   Inhalt   Index


1.4 Interne Details beim Programmieren

Der leicht geänderte Aufruf zum Compilieren
LINUX> g++ -v HelloWorld.cc
erzeugt eine längere Bildschirmausgabe, welche mehrere Phasen des Compilierens anzeigt. Im folgenden einige Tips, wie man sich diese einzelnen Phasen anschauen kann, um den Ablauf besser zu verstehen:
a).
Präprozessing:
Headerfiles (*.hh und *.h) werden zum Quellfile hinzugefügt (+ Makrodefinitionen, bedingte Compilierung)
LINUX> g++ -E HelloWorld.cc > HelloWorld.ii
Der Zusatz     > HelloWorld.ii    lenkt die Bildschirmausgabe in das File HelloWorld.ii. Diese Datei HelloWorld.ii kann mit einem Editor angesehen werden und ist ein langes C++ Quelltextfile.
b).
Übersetzen in Assemblercode:
Hier wird ein Quelltextfile in der (prozessorspezifischen) Programmiersprache Assembler erzeugt.
LINUX> g++ -S HelloWorld.cc
Das entstandene File HelloWorld.s kann mit dem Editor angesehen werden.
c).
Objektcode erzeugen:
Nunmehr wird ein File erzeugt, welches die direkten Steuerbefehle, d.h., Zahlen, für den Prozessor beinhaltet.
LINUX> g++ -c HelloWorld.cc
Das File HelloWorld.o kann nicht mehr im normalen Texteditor angesehen werden, sondern mit
LINUX> hex HelloWorld.o
d).
Linken:
Verbinden aller Objektfiles und notwendigen Bibliotheken zum ausführbaren Programm a.out .
LINUX> g++ HelloWorld.o

next up previous contents index
Nächste Seite: 1.5 Bezeichnungen in der Aufwärts: 1. Das erste Programm Vorherige Seite: 1.3 Das ``Hello World''   Inhalt   Index
Gundolf Haase 2004-01-15