49 Stimmen

Warum muss ich LD_LIBRARY_PATH jedes Mal mit einem Export definieren, wenn ich meine Anwendung ausführe?

Ich habe einige Code, der einige gemeinsam genutzte Bibliotheken (c-Code auf gcc) verwendet. Beim Kompilieren muss ich die Include- und Bibliotheksverzeichnisse mit -I und -L explizit definieren, da sie sich nicht an den Standardorten befinden. Wenn ich versuche, den Code auszuführen, erhalte ich den folgenden Fehler:

./sync_test 
./sync_test: error while loading shared libraries: libsync.so: cannot open shared object file: No such file or directory

Wenn Sie jedoch Folgendes tun, funktioniert alles einwandfrei:

export LD_LIBRARY_PATH="/path/to/library/"
./sync_test

Das Seltsame daran ist, dass dies nur einmal funktioniert. Wenn ich versuche, sync_test erneut auszuführen, erhalte ich die gleiche Fehlermeldung, es sei denn, ich führe zuerst den Befehl export aus. Ich habe versucht, das Folgende zu meiner .bashrc hinzuzufügen, aber es hat keinen Unterschied gemacht:

LD_LIBRARY_PATH="/path/to/library/"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X