2017-04-09 78 views
0

我其中我已经创建了一个可执行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

回答

0

你可以设置适当的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设置(这可能是你真正应该使用的)。

+0

非常感谢它的工作。现在我有一个不同的senario。我也想通过eclipse IDE运行可执行文件,并再次显示相同的错误。如何省略ecipse中的相​​同错误? –

+0

适当地配置您的IDE或您的用户帐户(例如,通过'〜/ .bashrc' ....) –

+0

我没有正确理解您,请您详细说明一下吗? –

相关问题