C++可执行错误:无法打开共享对象文件:没有这样的文件或目录
问题描述:
我其中我已经创建了一个可执行testsd一个项目路径:C++可执行错误:无法打开共享对象文件:没有这样的文件或目录
[email protected]:~/TestProject/build/linux/debug/bin/testsd
项目目录和层次结构是如下:
/TestProject
|-build/linux/debug/bin
|-ExtLib/folder/lib(containing .a and .so files)
|-ExtLib/folder/src(containing multiple sub folders with .cpp files)
|-ExtLib/folder/include(containing multiple sub folders with .cpp files)
|-src(containing multiple sub folders with .cpp files and mainc.pp)
|-tests(containing Runtests.cpp and catch.hpp files)
问题是,当我运行这个可执行文件(./testsd),我遇到了以下错误:
个./testsd: error while loading shared libraries: libuastackd.so: cannot open shared object file: No such file or directory
的libuastackd.so文件被包含在EXTLIB /文件夹/ lib和EXTLIB /文件夹/ SRC /堆栈/ lib中的文件夹。任何人都可以帮助,我该如何克服这个问题?
多亏了rG
答
你可以设置适当的LD_LIBRARY_PATH
环境。 见this。阅读ld-linux.so(8)。
有一些方法可以为您的整个会话设置LD_LIBRARY_PATH
,例如,通过编辑相应~/.login
或~/.bashrc
或~/.bashenv
或~/.profile
等等,而这将改变任何程序的行为,你开始后,包括一些Eclipse IDE中
阅读Drepper的How To Write Shared Libraries,尤其是其他的解决方案-e.g.适当的-Wl,-rpath
设置(这可能是你真正应该使用的)。
非常感谢它的工作。现在我有一个不同的senario。我也想通过eclipse IDE运行可执行文件,并再次显示相同的错误。如何省略ecipse中的相同错误? –
适当地配置您的IDE或您的用户帐户(例如,通过'〜/ .bashrc' ....) –
我没有正确理解您,请您详细说明一下吗? –