Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发、维护.
Boost向来有准标准库之称,很多新特性例如智能指针等都是先在boost中实现,后来被吸收到标准库之中. Boost实现了日志、算法、日期、地理、数学、线程协程等各种实用工具.
Boost 库官网:www.boost.org
这里是以 Ubuntu16.04 安装 Boost 1.68.0
为例.
1. Boost 库 apt 安装
Ubuntu 提供了 apt
安装方式,如:
sudo apt-get install --no-install-recommends libboost-all-dev
默认是 1.58.0 版本.
2. Boost 库源码编译安装
Boost 1.68.0 下载:https://www.boost.org/users/history/version_1_68_0.html
[1] - 下载并解压
wget -O https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gz
tar xzvf boost_1_68_0.tar.gz
cd boost_1_68_0/
[2] - 依赖项安装
sudo apt-get update
sudo apt-get install build-essential \
g++ \
autotools-dev \
libicu-dev \
libbz2-dev
[3] - boost 编译安装
#卸载旧版本
# uninstall dpkg
sudo apt --purge remove libboost-dev
sudo apt --purge remove libboost-all-dev
sudo apt --purge autoremove libboost-all-dev
# to uninstall the version which we installed from source
sudo rm -rf /usr/lib/libboost_*
sudo rm -rf /usr/include/boost
./bootstrap.sh
./b2 --with-python include="/usr/local/include/python3.7m/"
sudo ./b2 install -j4
# Add the Boost libraries path to the default Ubuntu library search path
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/boost.conf'
sudo ldconfig
#查看 boost 版本信息
cat /usr/local/include/boost/version.hpp | grep "BOOST_LIB_VERSION"
#输出如:
# // BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
# define BOOST_LIB_VERSION "1_68"
编译安装成功后,在 /usr/local/lib
中会生成有:libboost_python37.so
和 libboost_python37.a
等文件.
[4] - 添加环境变量
sudo gedit /etc/profile
#添加如下内容:
# CPLUS_INCLUDE_PATH=/usr/local/include
# LIBRARY_PATH=/usr/local/lib
source /etc/profile
[5] - 建立软连接
cd /usr/local/lib
sudo ln -s libboost_python-py37.so libboost_python3.so
sudo ln -s libboost_python-py37.a libboost_python3.a
# 建立到 /usr/lib/x86_64-linux-gnu 路径的软连接
sudo cp /usr/local/lib/libboost_python37.a /usr/lib/x86_64-linux-gnu/libboost_python-py37.a
sudo cp /usr/local/lib/libboost_python37.so.1.68.0 /usr/lib/x86_64-linux-gnu/libboost-py37.so
[6] - 说明:
- 在执行安装时,可以指定
prefix
参数,设定安装路径;如果不加该参数,则安装后,默认的头文件在/usr/local/include/boost
,库文件在/usr/local/lib/
目录. - 如果运行时提示无法加载某个库文件,则把
/usr/local/lib
下所有boost
的库文件拷贝到/usr/lib
目录即可. boost
库的卸载,直接将/usr/local/include/boost
和/usr/local/lib
中和boost
有关的文件删除即可.