2009-11-29 5 views

Antwort

9

Linker. Der * nix Linker heißt ld. Wenn ein Programm mit dynamischen Bibliotheken verknüpft ist, fügt der Linker zusätzlichen Code hinzu, um nach dynamischen Bibliotheken zum Auflösen von nicht statisch verknüpften Symbolen zu suchen. Normalerweise sucht dieser Code in/lib und/usr/lib. LD_LIBRARY_PATH ist eine durch Doppelpunkte getrennte Liste anderer zu durchsuchender Verzeichnisse.

"ldd" ist ein praktisches Programm, um zu sehen, wo die Bibliotheken sind: versuchen Sie zum Beispiel "ldd/bin/ls".

Es könnte aber auch "Loader" bedeuten. ;-)

Editorial:

Als (halb) interessante Randbemerkung: Ich denke, dynamische Bibliotheken weg einen Tag gehen. Sie wurden benötigt, wenn Speicherplatz und Systemspeicher knapp waren. Es gibt einen Leistungseinbruch bei der Verwendung derselben (d. H. Die Symbole müssen aufgelöst und der Objektcode bearbeitet werden). In diesen modernen Tagen mit 3 GB Arbeitsspeicher und 7 Sekunden Boot-Up-Zeiten könnte es angebracht sein, zur statischen Verknüpfung zurückzukehren.

Abgesehen von der Tatsache, dass jedes C++ Programm magisch auf 3MB wachsen würde. ;-)

+0

Vielen Dank: D –

+2

Der Linker selbst auf einem modernen Linux-System wahrscheinlich /lib/ld-linux.so sein .2 oder etwas Ähnliches. Wenn Sie das über die Befehlszeile ohne Parameter ausführen, erhalten Sie eine nette kleine Hilfemeldung. – bdk

+1

Ich bezweifle, dass dynamische Bibliotheken überall hinkommen - es ist sehr hilfreich, in der Lage zu sein, eine Sicherheitslücke durch Ersetzen einer .so-Datei zu füllen, anstatt jede Anwendung in Ihrem Betriebssystem neu zu erstellen, die die betreffende Bibliothek verwendet. – bdonlan

2

LD_LIBRARY_PATH - steht für LOAD LIBRARY PATH oder einige als LOADER BIBLIOTHEK PATH genannt mal