如何解决Linux下库文件的加载错误问题 ...

转自:http://www.open-abc.com/ccode-206.html

问题描述:

运行程序时,出现如下错误提示。“不存在 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

转载于:https://www.cnblogs.com/tolic/p/7142259.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值