Es folgen nur Kurzbeschreibungen einiger Werkzeuge, die speziell
auf die Arbeit mit Bibliotheken zugeschnitten sind.
Der Programmlader oder Dynamische Linker wurde oben bereits
beschrieben. Er ist dafür zuständig, die von einem Programm
benötigten Bibliotheken zu laden und zu binden.
|
Dieses ebenfalls bereits oben beschriebene Werkzeug erstellt das
Cachefile für den Programmlader. ldconfig ist
statisch gebunden.
|
Dieses Werkzeug zeigt an, ob und welche gemeinsam benutzbaren
Bibliotheken ein Programm verwendet. Es gibt die Abhängigkeiten
dieser aus. ldd ist statisch gebunden.
Mit ldd kann man sich anzeigen lassen, welche
Bibliotheken in welchen Versionen ein Programm verwendet. Dabei
verwenden fast alle Programme mindestens den Programmlader
/lib/ld-linux.so.2 und die Lib-C
/lib/libc.so.6. Komplexe
Programme verwenden oft 10 und mehr Bibliotheken (z.B. xterm).
Mit ldd kann man erkennen, ob ein Programm direkt
gegen Versionen gelinkt ist, oder ob es überhaupt dynamisch gebunden
wird. Das Kommando ldd /lib/ld-linux.so.2" sagt
beispielsweise statically linked (statisch gelinkt) und
ldd /sbin/ldconfig
not a dynamic executable. ldd zeigt
auch, welche Bibliotheken von Bibliotheken verwendet werden, so ist
zum Beispiel die Mathematikbibliothek /lib/libm.so.6
gegen libc.so.6 gelinkt.
|
nm zeigt die Symbole, also Funktionen und Variablen,
an, die eine Bibliothek nach außen hin verwendet. Das sind zum einem die
Symbole, die eine Bibliothek bereitstellt (exportierte
Funktionen) und zum anderen die, die sie verwendet (importiert).
nm -u zeigt die Symbole an, die eine Bibliothek
benötigt, und nm -g die, die exportiert werden. Dies
kann man sich gut am Beispiel libm.so anschauen.
nm -u /lib/libm.so.6 zeigt beispielsweise, dass libm
die Standardfehlerausgabe "stderr" aus der libc verwendet und
nm -g /lib/libm.so.6 zeigt, das
eine Funktion "tan" bereitgestellt wird (die den Tangens berechnet).
|
|