我有一个项目路径,我已经创建了一个可执行文件 testsd :
Caspian@Caspian-VirtualBox:~/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 / folder / lib和ExtLib / folder / src / stack / lib文件夹中。任何人都可以帮忙,我怎样才能克服这个问题?
谢谢rG
答案 0 :(得分:0)
您可以适当地设置LD_LIBRARY_PATH
环境。
见this。阅读ld-linux.so(8)。
可以通过某种方式为整个会话设置LD_LIBRARY_PATH
,例如通过适当地编辑~/.login
或~/.bashrc
或~/.bashenv
或~/.profile
等...这将改变您开始的任何程序的行为,包括一些Eclipse IDE
阅读Drepper的How To Write Shared Libraries,特别是其他解决方案 - 例如。适当的-Wl,-rpath
设置(这可能是您真正应该使用的设置)。