g++ aufruf
-
Hallo ich habe ein Problem mit dem g++
Ich weiß einfach nicht wie ich ihn richtig bedienen muss. In /usr/local/lib
habe ich eine Library, die ich gerne einbinden würde.Um genau zu sein libfmodex64.so
g++ -o test main.cpp -lfmodex64
kompiliert zwar, bei der ausführung heißt es aber dann,
"./test: error while loading shared libraries: libfmodex64.so: cannot open shared object file: No such file or directory"wenn ich g++ main.cpp /usr/local/lib/fmodex64 eingebe funkt alles bestens, ich bin aber zugegebenermaßen Anfänger und hab bestimmt noch nicht alles kapiert
-
Das Problem ist, dass der dynamische Linker nicht weiß, wo er die Library finden kann. Es gibt mehrere Wege dem dynamischen Linker mitzuteilen, wo er suchen soll.
zB
g++ -Wl,-rpath,/usr/local/lib -o test main.cpp -lfmodex64
oder in dem du LD_LIBRARY_PATH setzt (am besten in deiner ~/.bashrc)
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib
oder füge eine Datei mit dem Pfad zu /etc/ld.so.conf.d/ hinzu und führe ldconfig aus.
-
Danke Rüdiger,das ganze scheint zu funktionieren.
Nun wollte ich den Pfad in /etc/ld.so.conf.d hinzufügen .
DOrt liegt aber schon eine Datei libc.conf, welche /usr/local/lib enthält.
Wieso ist das unzureichend? Oder was muss ich denn genau hinzufügen?