Boost 库一键安装 —— C++ 生态的瑞士军刀
Boost 是什么
Boost 是 C++ 生态的「瑞士军刀」——最早的 C++ 官方标准库很多组件(智能指针、正则、asio 异步 IO)都源自 Boost。它包含超过 160 个子库,涵盖:
- 智能指针、多线程、协程
- 正则表达式
- 网络通信(asio)
- 图形图像处理(gil)
- 文件系统
- 测试框架
- 序列化、类型转换、日志
在 Cxxdroid 里装 Boost
进入包管理器,搜索「Boost」或「boost」,点击安装。安装过程可能耗时 1 到 3 分钟——Boost 的预构建库文件本身就比较大。
安装后立即能用吗
是的。CMake 项目里写这三行就能链接 Boost:
find_package(Boost REQUIRED COMPONENTS system filesystem)
target_link_libraries(myexe PRIVATE Boost::system Boost::filesystem)
一个快速验证示例
安装完 Boost 后,新建一个 C++ 项目,粘贴:
#include <boost/filesystem.hpp>
#include <iostream>
int main() {
namespace fs = boost::filesystem;
fs::path p = "/sdcard";
if (fs::exists(p)) {
std::cout << "SD card exists, size: "
<< fs::space(p).free << " bytes free\n";
}
return 0;
}
编译运行,看到 SD 卡剩余空间就说明 Boost 链接成功。
C++17 替代方案
注意:C++17 把 Boost Filesystem 纳入了标准库(std::filesystem)。如果你用 C++17 或更新的标准,可能不需要装 Boost Filesystem 了——直接用 std::filesystem 就行。
但 Boost 里仍有很多组件没进 C++ 标准(asio 网络、context 协程、process 子进程、beast HTTP),这些还是得靠 Boost。
关于编译缓存
Boost 的头文件极其庞大(boost/asio.hpp 单一个头文件展开可能超过 10 万行代码),第一次编译含 Boost 的项目会比较慢。编译缓存在这里效果特别好——第二次编译同一个 Boost 项目快得飞起。