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/"