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
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