Sie sind nicht angemeldet.

1

10.04.2004, 16:01

Fehler beim laden einer shared library

Hallo,

ich habe folgendes Problem, ich habe ein Programm erstellt, das ich beim linken mit folgender Datei verlinke: "/usr/local/towitoko/lib/libtowitoko.so.2.0.0" dieses klappt auch, nur wenn ich das kompilierte Programm ausführen möchte, erscheint diese Fehlermeldung: "error while loading shared libraries: libtowitoko.so.2: cannot open shared object file: No such file or directory" kann mir jemand helfen und mir sagen was ich machen muss, damit das Programm ausgeführt wird?

Danke schon im voraus

2

10.04.2004, 20:04

RE: Fehler beim laden einer shared library

Kompilier die Lib statisch mit ein, oder packe sie in den "Suchpfad" fuer Librarys.

Gruss,
kp

3

11.04.2004, 01:36

RE: Fehler beim laden einer shared library

Hallo,

danke für deine Antwort, aber wie kann ich denn die Lib statisch mit einkompilieren, bzw. sie in den Suchpfad für Librarys packen?

Frohe Ostern

tacuma

Anfänger

  • »tacuma« ist männlich

Beiträge: 37

Wohnort: Berlin

Beruf: Produktmanager/System Specialist

  • Nachricht senden

4

20.05.2004, 10:04

RE: Fehler beim laden einer shared library

Zitat

Original von HomerS
Hallo,

ich habe folgendes Problem, ich habe ein Programm erstellt, das ich beim linken mit folgender Datei verlinke: "/usr/local/towitoko/lib/libtowitoko.so.2.0.0" dieses klappt auch, nur wenn ich das kompilierte Programm ausführen möchte, erscheint diese Fehlermeldung: "error while loading shared libraries: libtowitoko.so.2: cannot open shared object file: No such file or directory" kann mir jemand helfen und mir sagen was ich machen muss, damit das Programm ausgeführt wird?

Danke schon im voraus


Hi,

ich vermute stark, der Pfad /usr/local/towitoko/lib gehört nicht zu den Standard-Pfaden in denen dein Linux-System Shared-Libraries sucht. Um das passend zu erweitern musst du /etc/ld.so.conf anpassen und ldconfig aufrufen. Nähere Infos: man ldconfig

Ist das eigentlich ein Privat-Programm von Dir oder etwas anderes?
Falls es dein eigenes ist, solltest du die Shared libs vielleicht besser nach /usr/local/lib oder besser nach /opt/local/lib oder $HOME/lib stellen; jedenfalls sieht es der Linux FHS so vor, denke ich.

Wenn du /usr/local/lib nimmst entfällt der obige Schritt mit ldconfig (wahrscheinlich).
Wenn Du $HOME/lib nimmst, heißt das natürlich, das nur dieser eine User im System die Library verwenden kann, deshalb sollte die /etc/ld.so.conf diesen Pfad natürlich nicht beinhalten. In diesem Fall musst Du (als dieser User) die Umgebungsvariable LD_LIBRARY_PATH setzen, also z.B. in .bash_profile:

export LD_LIBRARY_PATH=$HOME/lib:$LD_LIBRARY_PATH

Das dazulinken der Lib statisch statt dynamisch (shared), halte ich, mit Verlaub, für Schwachsinn. Wozu hat man schließlich Shared Libraries? Falls Du das doch tun willst, muss dem Linker die Option -static mitgeben. Aber ich rate ab.

Ciao,
tacuma
.

Thema bewerten