Ubuntu - Boost 库编译安装

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 有关的文件删除即可.
### Ubuntu 上通过源码编译安装 Boost #### 准备工作 在开始之前,需要确保系统已经更新至最新状态,并安装必要的开发工具和依赖项。可以通过以下命令完成环境准备: ```bash sudo apt-get update sudo apt-get install build-essential g++ python-dev autotools-dev libicu-dev libbz2-dev ``` 这些工具和是构建 Boost 所必需的基础组件[^3]。 #### 下载 Boost 源码 访问 Boost 官方网站 (https://www.boost.org/users/download/) 或其他可信镜像站点下载最新的 Boost 压缩包文件 `boost_<version>.tar.gz`。将其上传到目标 Ubuntu 系统或者直接使用 wget 工具下载: ```bash wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.gz ``` 接着解压压缩包到指定目录: ```bash tar -zxvf boost_1_78_0.tar.gz -C /path/to/install/ cd /path/to/install/boost_1_78_0 ``` 这里 `/path/to/install/` 是您希望放置 Boost 的路径[^2]。 #### 配置 Bootstrap 脚本 进入解压后的 Boost 文件夹运行 bootstrap.sh 来初始化构建脚本: ```bash ./bootstrap.sh --prefix=/usr/local ``` 其中 `--prefix` 参数指定了最终安装的目标位置,默认情况下会设置为 `/usr/local`。如果要更改此参数,请根据实际需求调整路径。 #### 构建与安装 利用 b2 工具执行具体的编译过程。可以自定义线程数加快速度以及选择特定版本的 Python 支持等选项: ```bash ./b2 install -j$(nproc) variant=release link=shared threading=multi runtime-link=shared ``` 上述命令中的 `-j$(nproc)` 表示充分利用 CPU 多核特性加速编译;`variant=release` 设置只生成发布版二进制文件而非调试模式;`link=shared` 和 `runtime-link=shared` 则分别表示链接动态而不是静态。 对于 ARM 平台上的交叉编译情况,则需额外配置 toolset 及 target-os 参数来匹配相应的 aarch64-linux-gnu-gcc 编译器链路[^1]: ```bash ./b2 toolset=gcc-aarch64-linux-gnu architecture=arm address-model=64 binary-format=elf abi=aapcs threadapi=pthread link=shared threading=multi runtime-link=shared --build-type=complete stage ``` 最后一步就是正式安装已成功构建出来的成果物啦!只需简单一句即可搞定: ```bash sudo ./b2 install ``` 至此,在 Ubuntu 系统上基于源码方式完全手动搭建好了一个全新的 Boost 开发环境!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值