如果不小心把以上文件删除了,则与之相连的libboost_python38.so文件应该会显示连接已断开,此时只能重新安装boost库了。
1、重新安装boost库需要先卸载原来的,在重新安装新的。
命令行下执行卸载
sudo apt-get --purge autoremove libboost-dev
但是当我卸载时,系统报错
解压缩后会消耗掉 0B 的额外空间。
您希望继续执行吗?[Y/n]y
正在设置 rsyslog (4.2.0-2ubuntu8.1) ...
dpkg:处理 rsyslog (--configure)时出错:
子进程 已安装的 post-installation 脚本 返回了错误号 10
正在设置 grub-pc (1.98-1ubuntu13) ...
dpkg:处理 grub-pc (--configure)时出错:
子进程 已安装的 post-installation 脚本 返回了错误号 10
在处理时有错误发生:
rsyslog
grub-pc
查了一圈明白了我的dpkg损坏了,不知道跟删除的libboost_python38.so.1.76.0有没有关系,此处解决办法转到:https://zhidao.baidu.com/question/533997170.html
如果大家每遇到这样的报错就不用看这里了。
2、卸载完成后,重新安装boost
PS:(参考博文:https://blog.51cto.com/nyc1991/1133388)
利用命令行
sudo apt-get install libboost-dev
安装,会报很多错误,所以这里不推荐这样直接安装,我们需要先下载安装一些依赖文件:
apt-get install mpi-default-dev #安装mpi库
apt-get install libicu-dev #支持正则表达式的UNICODE字符集
apt-get install python-dev #需要python的话
apt-get install libbz2-dev
都安装完成在继续进行下面的步骤。
(1)下载所需的安装包,这里我需要的是1.76.0版本。可以通过wget下载,也可以直接官网下载。
wget http://sourceforge.net/projects/boost/files/boost/1.76.0/boost_1_76_0.tar.gz
(2)解压缩,如果是提前下载好的安装包,需要先进入压缩包所在文件目录下执行解压。
tar -xzvf boost_1_76_0.tar.gz
(3)解压后进入到boost文件中
cd boost_1_76_0
(4)执行以下安装命令
(1)安装boost相关功能包,prefix是指定安装路径,后面还可以加–with-python=/usr/bin/python3.6指定某个包的版本(这里如果安装成功,则会看到提示 Detecting Python version… 3.6)
./bootstrap.sh --prefix=/usr/local
(2)应该是编译出各个文件到usr/local/lib中??
./b2 install --with=all
3、正常来说,到这里如果中间没出现报错,就应该重新安装好了,查看/usr/local/lib下是否还有未连接的文件或者之前不小心删掉的文件是否存在就可以确定成没成功了。
4、如果以上步骤繁琐,且没安装成功的话,还有一个办法,安装新立德软件,直接删除原来的包,安装新的包。
2020.6.21加
由于开源程序需要,后面又卸载了原来的boost重新安装,希望编译出对应python3.5版本的libboost_python35.so.1.76.0的文件,但是卸载后按照上面的重装,发现libboost_python35.so.1.76.0一直编译不出来,就是说usr/local/lib文件夹下没有python相关的so文件,因此查了一圈解决方案,最终如下的可以重新生成python的so文件。
应用的卸载方式如下:
sudo rm -r -f /boost_1_76_0 //删除下载后解压出来的文件,删除压缩包同理,但是一般不用重新下压缩包
sudo rm -f /usr/local/lib/libboost*//删掉usr/local/lib中的boost相关文件
sudo rm -r -f /usr/local/include/boost*//同上
sudo apt-get --purge autoremove libboost-dev
//上面的卸载方式,虽然前面三步已经卸载了文件,但是用这个指令卸载还是有60多个安装包需要卸载,暂时不知道原因,为了卸载的干净就都运行一下吧
卸载完成后,因为没有删除压缩包,因此直接解压进行安装即可,安装过程根上面的有所出入:
tar -xzvf boost_1_76_0.tar.gz
cd boost_1_76_0
./bootstrap.sh --prefix=/usr/local
sudo ./b2 install
正常到这里应该就安装完成了,libboost_python35.so.1.76.0文件应该就已经在lib文件夹下了,但是我看了一眼没有,因此想到单独再重新安装(编译)以下python,命令如下:
./bootstrap.sh --with-python=/usr/bin/python3 \
sudo ./b2 install
现在就有libboost_python35.so.1.76.0这个文件啦!!!心太累了,我就不适合弄电脑,恩!
ps:我猜是之前想安装boost指定某一个python编译版本,当时百度命令乱七八糟,结果把类似于软连接的东西改了,导致程序安装时还是按照上次的指定python文件编译,但是我指定的python位置不对,./bootstrap.sh --with-python=/usr/bin/python3 \,就是这个东西惹得祸,下次安装记得这个命令指定的python一定要是/usr/local/bin文件夹中有的,其他没有的不可以,暂时还不知道这里如果指定python3.5/python3.8还会不会正确,反正python3没问题,不敢动不敢动了~