加载共享的boost库时出错

时间:2010-12-31 05:04:57

标签: c++ linux boost shared-libraries

我正在研究centos。我在我的系统上安装了升级版本1.45.0。程序编译正确,但每当我键入命令查看输出时,它都会出现以下错误:

  

./ a.out:加载共享库时出错:   libboost_thread.so.1.45.0:无法打开共享对象文件:没有这样的   文件或目录

3 个答案:

答案 0 :(得分:5)

你是如何安装boost库的?

您可能遇到的问题是链接器无法找到库,而在构建程序时,您必须手动指定其他库路径来搜索库。

您可以做的快速修复是将LD_LIBRARY_PATH设置为包含boost线程库所在的目录:

export LD_LIBRARY_PATH=/path/to/boost/libs:$LD_LIBRARY_PATH

./runExecutable

答案 1 :(得分:5)

除了其他答案,您还可以在链接可执行文件时设置DT_RPATH elf标记

-Wl,-rpath,/path/to/boost/libraries -L /path/to/boost/libraries -lboost_whatever

这样,如果库安装在非标准位置,您就不必记得设置LD_LIBRARY_PATH

答案 2 :(得分:2)

您需要设置LD_LIBRARY_PATH环境变量以包含Boost库的路径(它们可能位于/usr/local/lib等)。

在bash中,这只是

export LD_LIBRARY_PATH=/path/to/boost:$LD_LIBRARY_PATH