Linker, Loader und ausführbare Formate
Ein dynamisch gelinktes Programm startete nicht, nachdem es auf einen anderen Computer kopiert und ausgeführt wurde. Was ist die wahrscheinlichste Ursache?
- AWeil die ausführbare Datei den gesamten Code der Bibliotheken enthielt und zu groß war
- BWeil dynamisch gelinkte Programme laut Regel nur auf dem Computer laufen, auf dem sie erstellt wurden
- CWeil die benötigten Shared Libraries nicht vorhanden sind oder nur Versionen vorliegen, die nicht kompatibel sind
Antwort und Erläuterung anzeigen
Antwort: C. Weil die benötigten Shared Libraries nicht vorhanden sind oder nur Versionen vorliegen, die nicht kompatibel sind
Dynamisch gelinkte Programme verwenden die auf dem ausführenden Computer vorhandenen Shared Libraries. Fehlen die benötigten Bibliotheken oder gibt es nur alte Versionen, denen Funktionen fehlen, kann der dynamische Linker nicht binden, und der Start schlägt fehl. Unter Linux lässt sich mit dem Befehl ldd prüfen, welche Shared Libraries ein Programm benötigt und ob sie gefunden werden. Im Hinblick auf die einfache Verteilung wird teils bewusst statisch gelinkt.