C++ 加载boost的共享库时出错
我在centos上工作。我在我的系统上安装了boost 1.45.0版。程序编译正确,但每当我键入命令以查看输出时,它会给出以下错误: ./a.out:加载共享库时出错: libboost_thread.so.1.45.0:无法打开共享对象文件:无此类文件 文件或目录C++ 加载boost的共享库时出错,c++,linux,boost,shared-libraries,C++,Linux,Boost,Shared Libraries,我在centos上工作。我在我的系统上安装了boost 1.45.0版。程序编译正确,但每当我键入命令以查看输出时,它会给出以下错误: ./a.out:加载共享库时出错: libboost_thread.so.1.45.0:无法打开共享对象文件:无此类文件 文件或目录 您需要设置LD_LIBRARY_PATH环境变量以包括Boost库的路径(它们可能位于/usr/local/lib等) 在bash中,这只是 export LD_LIBRARY_PATH=/path/to/boost:$LD_LI
您需要设置
LD_LIBRARY_PATH
环境变量以包括Boost库的路径(它们可能位于/usr/local/lib
等)
在bash中,这只是
export LD_LIBRARY_PATH=/path/to/boost:$LD_LIBRARY_PATH
您是如何安装boost库的 您可能遇到的问题是链接器找不到库,并且在构建程序时,必须手动指定其他库路径以搜索库 您可以做的一个快速修复方法是设置
LD_LIBRARY_PATH
以包括boost线程库所在的目录:
export-LD\u LIBRARY\u PATH=/PATH/to/boost/libs:$LD\u LIBRARY\u PATH
/runExecutable
除了其他答案之外,您还可以在链接可执行文件时设置DT_RPATH
elf标记
-Wl,-rpath,/path/to/boost/libraries -L /path/to/boost/libraries -lboost_whatever
这样,如果库安装在非标准位置,您就不必记得设置
LD\u LIBRARY\u PATH
。在tcsh中,它是setenv LD\u LIBRARY\u PATH/PATH/to/boost:$LD\u LIBRARY\u PATH