当前位置:首页>Linux>Linux下编译Boost库

Linux下编译Boost库

  • 2026-10-11 08:29:44
Linux下编译Boost库


一、Linux下编译Boost库

  • 时间:2025-11-27
  • Boost版本:1.89.0
  • 系统:ubuntu20.04

Boost官网地址:https://www.boost.org/

Boost源码下载地址:https://github.com/boostorg/boost/releases/tag/boost-1.89.0

二、Boost简介(官网介绍)

Boost 是一系列高质量且经过同行评审的库的集合,旨在提高 C++ 开发的效率。

Boost 每年公开发布三次(四月、八月和十二月)。每次发布都包含对现有库的更新,以及所有通过严格审核流程的新库。目前,Boost 拥有超过 180 个库,涵盖了各种各样的编程任务。

在 C++ 项目中使用 Boost 库有很多优势,最主要的一点是,如果已经有库实现了你原本需要自己编写的功能,那么使用 Boost 可以避免重复造轮子。 此外:

  • Boost库在发布前都经过同行评审、精心设计并进行了广泛的测试。

  • Boost 并不与C++ 标准库竞争,而是通过提供令人兴奋的附加功能来补充标准库。标准库中的许多组件最初都是 Boost 库的组件。

  • Boost 是开源的,您可以将其用于任何项目中。它是免费的,包括商业项目。请参阅Boost 软件许可协议。

  • Boost 支持跨平台开发,只需编写一份源代码。Boost 支持 Windows、Linux 各版本、Apple OS X、iOS、Android 和 Xbox。

  • Boost库的设计理念是尽可能保持独立性,以便用户可以根据需要选择所需的库,而无需强制包含不必要的代码。如果某个库有依赖项,则在仅安装完整库集合的子集时,这些依赖项会自动加载。

  • 这些库的特殊优势包括丰富的文档、易于安装和更新、许多库仅包含头文件,并且通常涵盖不太常见的用例。

  • 通过模板元编程, Boost 库是构建其他库的良好平台。

  • Boost 可以与图形和游戏 SDK(如 OpenGL、Vulkan 和 DirectX)以及游戏开发引擎(如 Unreal Engine)结合使用。

  • 通过用户社区,您可以轻松地向其他程序员提问并分享您的 Boost 使用经验。

  • 开发者可以了解现有资源。某个库可能目前用不上,但了解它的存在有助于未来的规划和规划。

  • 虽然错误很少见,但其他问题可以提交给库作者。

使用 Boost 时的注意事项

这些库实现了现代化的 C++ 编程方法,通常优先考虑性能、正确性、跨平台可移植性、效率和可重用性。Boost 提供的是构建模块,而不是高级应用程序框架。

Boost 使用大量模板,以提供最大的可移植性和可重用性,这可能会导致语法过于密集,需要一些时间来适应。

Boost库由一位或一个小型独立开发者团队编写。因此,不同库在可移植性、标准、文档、错误报告和其他方面可能存在一些细微差异。严格的审查流程有助于最大限度地减少这些差异。

三、Boost编译

官网上有两种针对源码的编译方式:B2和CMake,官网推荐使用B2。下面我们通过两种方式对Boost都编译一遍。

Tip:编译前需要根据系统的情况安装必要的依赖包。具体请参考官网上内容:

B2编译

B2是Boost库官方支持的构建系统。Boost库是使用名为B2的自定义构建应用程序构建的。该应用程序本身是通过运行引导脚本构建的。

以下是使用B2配置、构建和安装 Boost 的常规步骤:

./bootstrap.sh --prefix=/opt/x86_64/boost-1_89_0./b2./b2 install

CMake编译

进入到源码目录,新建编译脚本build.sh,内容如下:

#!/usr/bin/shBUILD_TYPE=${1:-Release}INSTALL_PREFIX=${2:-/opt/x86_64/boost-1_89_0}rm -rf __buildmkdir __build && cd __buildcmake .. \      -DCMAKE_BUILD_TYPE=$BUILD_TYPE \      -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIXcmake --build .cmake --build . --target install

对比两种编译方式,发现B2方式编译的库比cmake方式编译的库要多。具体原因还没详查,可能和编译配置有关。在日常开发中Boost可根据需求有选择添加,没必要全部调用。

END

作者:YuLinMuRong

来源:Linux兵工厂

版权归原作者所有,如有侵权,请联系删除。
▍推荐阅读
“0 : 5,中国程序员惨败!”
如果不考虑STM32,你会推荐哪些国产单片机?
这个法国老哥写的C代码,把全世界程序员都干沉默了
→点关注,不迷路←

最新文章

随机文章