Unter einem Linker oder Binder (auch: "Bindelader") versteht man ein Programm, das einzelne Programmmodule zu einem ausführbaren Programm zusammenstellt (verbindet).
Die meisten Programme enthalten Bestandteile oder Module, die auch in anderen Programmen Verwendung finden können. Mehrere kompilierte Module mit Funktionen (so genannte Objektdateien) können zu Funktionsbibliotheken (Programmbibliotheken) zusammengefasst werden. Der Code wird vom Linker zum Hauptprogamm hinzugefügt, falls die entsprechende Funktion benötigt wird.
Um ein Programm-Modul in einem anderen Programm verwenden zu können, müssen die symbolischen Adressen der Funktionen und Variablen des Moduls in Speicheradressen umgewandelt werden. Diese Aufgabe übernimmt der Linker. Der Linkvorgang erfolgt nach der Kompilation und ist meistens der letzte Arbeitsschritt zur Erstellung eines Programms.
Man unterscheidet generell zwischen statischem und dynamischem Linken.
Modernere Versionen aktueller C-Bibliotheken unter Unix-artigen Betriebssystemen unterstützen statisches Linken oft nicht mehr vollständig. So erzwingt beispielsweise die GNU/Linux-glibc ein dynamisches Linken bei Modulen, die die Authentifizierung von Benutzern betreffen. Obwohl ein derart gelinktes Programm fast alle Module bereits enthält, ist es so dennoch auf die Anwesenheit einer passenden "Laufzeitversion" der glibc angewiesen.
Mischformen der statischen und dynamischen Link-Art sind der Normalfall. Bei solchen Programmdateien findet der Linkvorgang praktisch zweimal statt: Einmal durch den Entwickler, und ein zweites Mal - unsichtbar - beim Anwender während der Ausführung. Im Regelfall werden die Namen der benötigten externen Bibliotheken beim ersten Linkvorgang fest einkodiert; es ist aber auch möglich, dass das Programm nach Überprüfung der vorhandenen Bibliotheken während der Laufzeit wahlweise einzelne nachlädt oder auch nicht. Solche nachgeladenen Bibliotheken werden oft als Plug-Ins bezeichnet.
Auf IBM-Großrechnersystemen wird der Linker auch "linkage editor" (englisch) genannt.
Linker | Linker | Linker | Enlazador | Linkija | پیوندده | Édition de liens | リンケージエディタ | Linken | Konsolidator | Linker | Линковщик | โปรแกรมเชื่อมโยง | Bağlayıcı | 链接器
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Linker (Programm)".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world