Das Linken des Codes

Wie schon erwähnt erzeugt der Compiler nur einen Objektcode, in dem jede Funktion noch für sich steht, da Aufrufe zwischen den Funktionen noch nicht aufgelöst wurden. Der Linker hat nun die Aufgabe, diese Aufrufe den passenden Funktionen zuzuweisen. Dazu stehen ihm die vom Compiler generierten Informationen über die Funktionen selbst und über die in ihnen getätigten Aufrufe zur Verfügung.

Dabei gibt es im wesentlichen drei Wege, auf denen der Linker an diese Informationen kommt:

  1. Er übernimmt sie direkt von Compiler
  2. Er bekommt sie aus zusätzlichen Objektdateien
  3. Er holt sie aus Bibliotheken

Diese drei Varianten haben unterschiedliche Vor- und Nachteile. Die Übernahme direkt vom Compiler ist die einfachste Möglichkeit vom Verwaltungsaufwand her, hat aber den Nachteil, daß jedesmal der Code auch compiliert werden muß. Diesen Nachteil kann man dadurch umgehen, daß man jeden Teil des Quelltextes einzeln in Objektcode umsetzt und nur bei Bedarf neu compiliert. Dann muß bei der Programmgenerierung nur noch die bestehenden Objektfiles zusammengelinkt werden. Um diesen Verwaltungsaufwand zu erleichtern gibt es in den verschiedenen Programmierumgebungen Tools, die den aktuellen Stand der Quelltexte mit dem der Objektfiles vergleichen.

Die dritte Alternative - die Bibliotheken - sollen jetzt etwas ausführlicher besprochen werden.