2016-06-22 11 views
0

Ich habe seltsames Problem beim Laden freigegebener Bibliothek in einem cpp-Programm. Wenn die Make-Datei ausgeführt wird, dann funktioniert es gut -Konnte Bibliothek nicht geladen werden, während das Programm ausgeführt wurde

LIB_RELEASE = $(LIB)-lopencv_highgui -lopencv_core -lopencv_imgcodecs -lopencv_imgproc -lmmcheng_github -lgomp 

Aber wenn ich laufen diese die Ausgabedatei verwendet, die als Ergebnis dieser Make-Datei generiert wird, es gibt mir Fehler wie -

./bin/mmcheng_densecut: error while loading shared libraries: libmmcheng_github.so: cannot open shared object file: No such file or directory 

PS ich habe die libmmcheng_github.so im Verzeichnis/usr/local/lib

Fehler Screenshot platziert - See during makefile all works fine however later it fails

Dank

+0

Sieht aus wie Ihre Dynamischer Loader (ld.so in Linux) kann die benötigte Shared Library nicht finden. –

+0

Ja, dass ich auch in dem Fehler sehen kann, aber was soll ich tun, um dies zu beheben. Ich hatte diese Datei in meinem aktuellen Ordner, aber aufgrund dieses Fehlers habe ich sie in den Ordner/usr/local/lib verschoben. – codeomnitrix

+0

Können Sie den Befehl "ldd" gegen Ihre ausführbare Datei ausführen? Es kann einige Hinweise geben ... – Greycon

Antwort

1

Try LD_LIBRARY_PATH Umgebung String Einstellung lesen here

Obwohl diese discouraged practice ist aber zumindest wird es Ihnen helfen, einen Schritt machen weiter ...

auch, lesen this question and answer

+0

Cool..This funktionierte, aber es gibt einen besseren Weg, dies zu tun, denke ich ... aber ich habe den LD_LIBRARY_PATH vorübergehend in meiner .bashrc-Datei platziert – codeomnitrix