Boost 是一系列高质量、经过同行评审的C++库,专为提高开发效率而设。每年4月、8月、12月定期发行新版本,当前最新版本为1.89.0,收录了超过180个涵盖各类编程任务的库模块。它并非试图替代C++标准库,而是作为一个强有力的补充——标准库中的不少组件,最早都来自Boost。
开始编译之前,请确保系统已安装必要的开发工具。以Ubuntu/Debian为例,可以先检查GCC:
g++ --version
如果未安装,运行以下命令补齐编译链:
sudo apt update
sudo apt install build-essential python3 libbz2-dev libz-dev libicu-dev

其他发行版请参考 Boost官方先决条件说明,过程类似。
两种源码编译方式
官网提供了两套构建方案:B2 和 CMake,官方明确推荐使用B2。下面会把两种方式都过一遍,方便对比和选型。
方式一:B2原生构建
B2是Boost库自带的构建系统,通过一个引导脚本即可自举。

进入源码目录后,执行:
./bootstrap.sh --prefix=/opt/x86_64/boost-1_89_0
./b2
./b2 install
等待编译完成,安装目录下会生成大量以libboost_开头的库文件。

方式二:CMake构建
如果你更习惯CMake的工作流,可以在源码目录新建一个build.sh脚本:
#!/usr/bin/sh
BUILD_TYPE=${1:-Release}
INSTALL_PREFIX=${2:-/opt/x86_64/boost-1_89_0}
rm -rf __build
mkdir __build && cd __build
cmake .. \
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX
cmake --build .
cmake --build . --target install
赋予执行权限后./build.sh即可。实际对比后发现,B2方式编译出的库数量比CMake方式更多,具体原因可能与默认构建配置差异有关。日常开发时完全可以根据项目需要,按需选取需要的Boost组件,不必全量引入。
小结
本文在Ubuntu 20.04环境上走通了Boost 1.89.0的编译流程,分别演示了官方推荐的B2方式以及CMake方案。熟悉这两套构建方法后,你可以根据团队习惯灵活选择。更多C++与系统级开发内容,欢迎访问云栈社区交流。
|