本文主要是介绍如何解决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
这篇关于如何解决Linux下库文件的加载错误问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!