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?


Anmelden zum Antworten