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.solibboost_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 有关的文件删除即可.
Last modification:June 28th, 2019 at 01:17 pm