Boost是非官方但被广泛视为“准标准库”的C++库,头文件库可直接使用,filesystem等需编译二进制库;Windows用bootstrap.bat生成b2.exe并b2编译,Linux用bootstrap.sh生成b2后编译;项目中需正确设置-I头文件路径及-L/-l或/clink库路径与名称。

Boost 不是官方标准库,但被广泛视为“准标准库”,很多特性后来被 C++11/14/17 吸收。它无需编译安装也能用(头文件-only 库),但部分组件(如 filesystem、system、regex)需编译二进制库。下面以主流方式说明如何在 Windows(MSVC)和 Linux(GCC)下正确配置。
下载与解压 Boost 源码
访问官网 boost.org,下载最新版源码压缩包(如 boost_1_85_0.7z)。解压到无中文、无空格路径,例如:
Windows:C:boost_1_85_0 Linux:/opt/boost_1_85_0
解压后目录里有 boost/(头文件主目录)、libs/(示例与文档)、bootstrap.bat(Windows)或 ./bootstrap.sh(Linux)。
生成 b2 构建工具(关键一步)
Boost 使用自研构建系统 b2(旧称 bjam),必须先生成它:
立即学习“C++免费学习笔记(深入)”;
Windows(管理员权限 CMD 或 PowerShell):
cd C:boost_1_85_0
bootstrap.bat vc143
(对应 VS2022;vc142=VS2019,vc141=VS2017) Linux:
cd /opt/boost_1_85_0
./bootstrap.sh --prefix=/usr/local
成功后生成 b2(Linux/macOS)或 b2.exe(Windows),位于 Boost 根目录。
编译需要的二进制库(按需)
不是所有 Boost 库都要编译。头文件库(如 shared_ptr、optional、range)直接 #include 即可。以下库需链接预编译版本:
boost_filesystem、boost_system(路径操作、错误码) boost_regex(正则表达式) boost_thread、boost_chrono(多线程与时间)
编译命令示例(Windows):
b2 toolset=msvc-14.3 link=static runtime-link=shared address-model=64 -j8 --build-type=complete stage
说明:
toolset:指定编译器(vs2022 对应 msvc-14.3)
link=static:生成静态库(.lib)
runtime-link=shared:动态链接 MSVCRT(避免运行时冲突)
address-model=64:生成 64 位库(默认可能为 32 位)
stage:库输出到 stage/lib/ 目录
Linux 类似(用 gcc toolset,生成 .a/.so)。
在项目中使用 Boost
头文件库(最常用):
只需在代码中包含,并确保编译器能找到 boost/ 目录:
#include
boost::optional x = 42;
编译时加头文件路径:g++ -I /opt/boost_1_85_0 main.cppcl /I"C:boost_1_85_0" main.cpp
二进制库(如 filesystem):
除头文件路径外,还需链接库文件:
Linux:g++ -I/opt/boost_1_85_0 main.cpp -L/opt/boost_1_85_0/stage/lib -lboost_filesystem -lboost_system Windows(MSVC):cl /I"C:boost_1_85_0" main.cpp /link "C:boost_1_85_0stagelibboost_filesystem-vc143-mt-x64-1_85.lib" "C:boost_1_85_0stagelibboost_system-vc143-mt-x64-1_85.lib"
注意库名含编译标识(如 -mt=多线程,-x64=64位,-1_85=版本),务必匹配你编译出的文件名。
基本上就这些。Boost 配置不复杂但容易忽略 toolset 和链接模式匹配,建议首次用最小例子验证(如只用 optional 测试头文件路径,再逐步加入 filesystem 测试链接)。官方文档 Getting Started 是最权威参考。
以上就是c++++ Boost库安装与使用_c++准标准库Boost配置指南【环境搭建】的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1489444.html
微信扫一扫
支付宝扫一扫