Shared heißt, dass das Programm erwartet, dass gewisse Funktions-Bibliotheken auf Deinem Rechner vorhanden sind. Diese Bibliotheken heißen Shared Object, haben die Dateiendung .so und liegen üblicherweise unter /lib, /usr/lib und auch /usr/local/lib. Die Funktions-Aufrufe in die Bibliotheken werden bei der Programmerstellung dynamisch gelinkt, d.h. es werden nur Verweise auf die Bibliotheks-Funktionen eingefügt. Shared Objects entsprechen den DLLs auf einem MS Windows-System.
Static-Versionen bringen die benötigten Bibliotheken selbst mit, die Funktions-Aufrufe in die Bibliotheken werden bei der Programmerstellung statisch gelinkt, d.h. die Bibliotheken werden fester Bestandteil des erstellten Programms.
Der Vorteil dyn. gelinkten Programme ist, dass die Shared Objects nur einmal in den Hauptspeicher geladen werden müssen und dann von verschiedenen Programmen benutzt werden können. Auch auf der Platte nehmen die Programme so weniger Platz weg. Der Nachteil ist, dass es evtl. Inkompatibilitäten zw. dyn. gelinkten Programmen und Bibliotheksdateien geben kann oder dass man Bibliotheken von Hand nachinstallieren muss.
Die von einem Programm benötigten Shared Objects kann man mit dem Befehl ldd feststellen, die Aufrufe eines laufenden Programms mit dem Befehl ltrace.
Ciao,
sys3 |