C++ 加载boost的共享库时出错

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

我在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_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