问题描述:

运行程序时,出现如下错误提示。“不存在 libboost_regex.so.1.46.1 这个库文件”

 error while loading shared libraries: libboost_regex.so.1.46.1: cannot open shared object file: No such file or directory

解决方法:

1.先查找一个自己电脑里面是否存在这个文件,排查是否只是因为载入的问题;

一般情况下安装的boost库文件默认都在/usr 里面,所以用find 命令搜索一下该目录下(也可以是整个根目录 )是否有这库文件。

find / -name libboost_regex.so.*  

注意:后面的版本号就用*代替了(自己匹配,因为你电脑里面安装的不一定是这个版本)

我自己遇到这个问题的时候就发现我电脑里面装的是boost 1.54.0这个版本。

如果存在,则可能是因为路径的配置问题。在ld.so.conf中添加中刚刚搜索到的路径,然后再次运行。

  sudo vim /etc/ld.so.conf

  sudo ldconfig

显然,我自己遇到这个问题时是不行的,它必须使用对应的1.46.1这个版本

2.电脑中不存在这个文件或是存在,但版本不对。

去 http://www.boost.org 找到对应版本的boost库,下载。

a.下载后解压到/opt/boost_1_46_1

b.解决依赖关系 sudo apt-get install python-dev gccxml

如果还不全,就用apt-cache depends XXXXXXX查去

c.编译bjam:

   #cd /opt/boost_1_46_1

   #sudo ./bootstrap.sh

   编译成功

d.编译boost

  #sudo ./bjam

   开始编译

  大约要个十几分钟

  编译完成后:

The Boost C++ Libraries were successfully built!

The following directory should be added to compiler include paths:

    /home/terry/Local/boost_1_46_1

The following directory should be added to linker library paths:

    /home/terry/Local/boost_1_46_1/stage/lib

e.update动态链接库: sudo ldconfig