一、boost的安装
在官网:https://www.boost.org/users/history/下载安装包,可以根据需求选择版本,我选择的是Version 1.70.0,ubuntu平台下,选择 boost_1_70_0.tar.gz 安装包下载。
将压缩包放到自己想存放的目录下,然后提取:
再运行如下命令
cd boost_1_70_0
./bootstrap.sh
运行上一步命令后得到一个文件,名字是bjam,运行这个文件:
./bjam # 这里需要一会时间,配置环境
再运行命令进行安装
sudo ./b2 install # 不sudo的话,无法在 usr/include创建 boost文件夹
安装地址为:
/usr/local/include/boost
/usr/local/lib/libboost
二、boost的卸载
卸载boost的操作根据安装情况的不同,操作不一:
A. 对于使用apt-get安装的boost版本
sudo apt-get install libboost1.xx-dev # libboost1.65-dev for example 安装
dpkg -S /usr/include/boost/version.hpp # 查看安装的boost版本
sudo apt-get autoremove libboost1.65-dev # 卸载
但是对于使用源码编译的boost库,包括查看boost版本在内的所有上述代码不可用
B.使用源码编译的boost库,查看安装的boost版本如下
cat /usr/local/include/boost/version.hpp | grep “BOOST_LIB_VERSION”
#查看安装的boost版本. version.hpp 前面的路径可变,即找到/usr/路径下的version.hpp即可
卸载源码编译的boost库,需要删除:
1.安装路径的boost; 2. /usr/local/include/路径下的boost*; 3. /usr/local/lib/路径下的libboost*
sudo rm -r -f /usr/local/include/boost*
sudo rm -f /usr/local/lib/libboost*
2、3步骤需要使用sudo权限
参考博客
三、安装报错的解决方法
参考博客
安装boost的时候执行./b2那一步时,会出现这样的报错:
...skipped <p/home/jc-cao/app_download_address/boost/boost_1_70_0/stage/lib>libboost_python36.so.1.70.0 for lack of <pbin.v2/libs/python/build/gcc-9.3.0/release/python-3.6/threading-multi/visibility-hidden>libboost_python36.so.1.70.0...
...skipped <p/home/jc-cao/app_download_address/boost/boost_1_70_0/stage/lib>libboost_python36.so for lack of <p/home/jc-cao/app_download_address/boost/boost_1_70_0/stage/lib>libboost_python36.so.1.70.0...
...skipped <p/home/jc-cao/app_download_address/boost/boost_1_70_0/stage/lib>libboost_python36.so.1 for lack of <p/home/jc-cao/app_download_address/boost/boost_1_70_0/stage/lib>libboost_python36.so.1.70.0...
...skipped <p/home/jc-cao/app_download_address/boost/boost_1_70_0/stage/lib>libboost_python36.so.1.70 for lack of <p/home/jc-cao/app_download_address/boost/boost_1_70_0/stage/lib>libboost_python36.so.1.70.0...
...failed updating 66 targets...
...skipped 16 targets...
...updated 178 targets...
jc-cao@jccao-virtual-machin
…failed updating 66 targets…
…skipped 12 targets…
提示找不到pyconfig.h
参考git上的提问区,发现是boost编译时会出现无法自动定位到python位置的问题。
解决方法:手动修改project-config.jam文件,设置python路径:
文件中默认把我的python定位到了/home/jc-cao/Anaconda3_5.2
,但实际路径是/home/jc-cao/Anaconda3_5.2/lib/python3.6
,
先执行
./bootstrap.sh --with-python=python3.6
注:此步在修改前执行,版本设置为所设置python路径的对应版本。否则安装程序会自动修改配置文件中的python路径。
再对配置文件进行修改:
重新执行
sudo ./b2 install
这样就完成了。
四、多版本boost的管理方式
由于高阶版本的boost没有一些库,所以有时候会下载安装多个版本的boost:
由于默认安装位置为下述路径:
/usr/local/include/boost
/usr/local/lib/libboost
所以只需要将boost 重命名即可,比如 同时安装了1.7.6和1.7.0,则将这两个路径下的包分别命名为 boost1.7.6
和 boost1.7.0
,在CMake设置好所需版本的boost的路径即可。