"error while loading shared libraries"
-
Hallo!
Ich versuche ein Programm zu portieren (Windows->Linux (SuSe 9.2)), welches weitere Bibliotheken benötigt, darunter z.B. OpenCV.
Diese habe ich gemäß Anleitung installiert, so liegt z.B. die Datei:/usr/local/lib/libcv.so.0
vor.
Das eigentliche Programm lässt sich problemlos compilieren und linken, beim starten gibt es dann aber folgende Meldung:
programm: error while loading shared libraries: libcv.so.0: cannot open shared object file: No such file or directory
Die Datei ist, wie oben zu sehen, aber vorhanden, im Makefile steht auch folgender Eintrag:
LIBDIR=-L/usr/local/lib
Kann mir da jemand helfen
Bin ein Linuxanfänger
-
Damit die Shared Libraries auch zur Laufzeit (also beim Programmstart) gefunden werden reicht der -L Parameter leider nicht aus
Du hast zwei Möglichkeiten:
Entweder Du setzt eine Umgebungsvariable (das geht für die aktuelle Shell oder systemweit in z.B. /etc/profile) auf /usr/local/libexport LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Oder Du trägst das Verzeichnis in die Datei /etc/ld.so.conf ein, das ist die systemweite "Datenbank", aus der ermittelt wird wo nach .so Dateien gesucht wird. Wenn Du die Eintragung in diese Datei vornimmst, musst Du anschliessend den Befehl ldconfig ausführen, damit er die Dateien neu einliest.
-
Die erste Variante klappt problemlos. Nun will ich das aber für jede Shell haben, sprich Variante 2 benutzen.
Allerdings ist der Pfad in der von dir genannten Datei schon vorhanden:
/usr/X11R6/lib/Xaw95
/usr/X11R6/lib/Xaw3d
/usr/X11R6/lib
/usr/i486-linux/lib
/usr/i486-linux-libc5/lib=libc5
/usr/i486-linux-libc6/lib=libc6
/usr/i486-linuxaout/lib
/usr/i386-suse-linux/lib
/usr/local/lib
/usr/openwin/lib
/opt/kde/lib
/opt/kde2/lib
/opt/kde3/lib
/opt/gnome/lib
/opt/gnome2/lib
include /etc/ld.so.conf.d/*.confDennoch geht es nicht? Übersehe ich etwas
-
Hab gepennt:
opencv hat die Datei wohl schon aktualisiert, aber nicht neu eingelesen. Der updatebefehl hat das richtig gestellt