【发布时间】:2016-06-22 20:10:42
【问题描述】:
在 cpp 程序中加载共享库时遇到奇怪的问题。当 make 文件被执行时,它就可以正常工作了 -
LIB_RELEASE = $(LIB)-lopencv_highgui -lopencv_core -lopencv_imgcodecs -lopencv_imgproc -lmmcheng_github -lgomp
但是当我使用这个 make 文件生成的输出文件运行它时,它给了我错误 -
./bin/mmcheng_densecut: error while loading shared libraries: libmmcheng_github.so: cannot open shared object file: No such file or directory
PS 我已将 libmmcheng_github.so 放在文件夹 /usr/local/lib 中
谢谢
【问题讨论】:
-
看起来您的动态加载器(Linux 中的 ld.so)无法找到您需要的共享库。
-
是的,我也可以在错误中看到,但我应该怎么做才能解决这个问题。我曾经在我的当前文件夹中有这个文件但是由于这个错误我把它移到了 /usr/local/lib 文件夹
-
你能对你的可执行文件运行“ldd”命令吗?它可能会提供一些线索...
-
嘿 Greycon,我通过在我的 .bashrc 文件中设置 LD_LIBRARY_PATH 得到了解决方案,但是我对那个解决方案不是很兴奋
-
好酷。您是否尝试将 .so 放入 /usr/lib(而不是 /usr/local/lib)?