【问题标题】:Unable to load shared library while running the program运行程序时无法加载共享库
【发布时间】: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)?

标签: linux shared-libraries


【解决方案1】:

尝试设置LD_LIBRARY_PATH环境字符串,读取here

虽然这里是discouraged practice,但至少它会帮助你向前迈出一步……

另外,请阅读this question and answer

【讨论】:

  • 酷..这行得通,但我认为必须有更好的方法来做到这一点......但是我暂时将 LD_LIBRARY_PATH 放在了我的 .bashrc 文件中
猜你喜欢
  • 2020-03-12
  • 1970-01-01
  • 2018-09-18
  • 2018-09-17
  • 1970-01-01
  • 2014-10-26
  • 2014-11-06
  • 2021-11-04
  • 2021-10-12
相关资源
最近更新 更多