Shared Libraries
Erstellen
Shared Libraries sind Bibliotheken, die von mehreren Programmen genutzt werden können. Sie sind in der Regel in C oder C++ oder Rust oder Golang geschrieben und haben die Endung .so (Shared Object) unter Linux.
Testen von Shared Libraries: ldd
export LD_LIBRARY_PATH=/home/thorsten/start/test:$LD_LIBRARY_PATH
Um sicherzustellen, dass die Shared Library korrekt geladen wird, können Sie den Befehl `ldd` verwenden, um die Abhängigkeiten zu überprüfen:
ldd /home/thorsten/start/test/libmeinebibliothek.so
Die Ausgabe zeigt die dynamischen Abhängigkeiten der Shared Library an. Wenn alle Abhängigkeiten aufgelöst sind, sollte die Bibliothek korrekt funktionieren.
Sie können auch ein kleines Testprogramm schreiben, um die Funktionalität der Shared Library zu überprüfen. Hier ist ein Beispiel in C:
#include <stdio.h> #include "meinebibliothek.h" int main() { printf("Test der Shared Library\n"); meine_funktion(); return 0; }
Kompilieren Sie das Testprogramm und führen Sie es aus:
gcc -o testprogramm testprogramm.c -L/home/thorsten/start/test -lmeinebibliothek ./testprogramm
Stellen Sie sicher, dass das Verzeichnis mit der Shared Library in der `LD_LIBRARY_PATH` enthalten ist, bevor Sie das Testprogramm ausführen.
export LD_LIBRARY_PATH=/home/thorsten/start/test:$LD_LIBRARY_PATH
Systeminstallieren
Um eine Shared Library systemweit zu installieren, folgen Sie diesen Schritten:
sudo cp libmeinebibliothek.so /usr/local/lib/ sudo ldconfig
- Kopieren der Shared Library: Der Befehl `sudo cp libmeinebibliothek.so /usr/local/lib/` kopiert die Shared Library `libmeinebibliothek.so` in das Verzeichnis `/usr/local/lib/`. `sudo` wird verwendet, um den Befehl mit Administratorrechten auszuführen, da das Zielverzeichnis systemweit ist und erhöhte Berechtigungen erfordert.
- Aktualisieren des Linker-Cache: Der Befehl `sudo ldconfig` aktualisiert den Cache des dynamischen Linkers/Loaders. Dadurch wird sichergestellt, dass die neu hinzugefügte Shared Library vom System erkannt und verwendet werden kann.
Nach diesen Schritten sollte die Shared Library systemweit verfügbar sein und von allen Programmen, die sie benötigen, genutzt werden können.