如何使用Visual Studio 2022(预览版3)编译Boost 1.77库
问题根因
Boost 1.77 发布于2021年8月,早于Visual Studio 2022正式版发布时间,原生未适配VS2022对应的vc143工具集,所以会直接提示不支持。你之前执行bootstrap命令失败的原因对应如下:
- 执行
./bootstrap.bat gcc/./bootstrap.bat mingw失败:当前PowerShell环境路径中未配置MinGW/GCC编译器,也未提前启动MinGW对应的终端环境 - 执行
./bootstrap.bat msvc失败:Boost 1.77识别不到你安装的预览版vc143工具集,无法正常生成编译配置
解决方法
方案1:升级Boost版本(最省心)
直接升级到Boost 1.78及以上版本,这些版本原生已支持vc143工具集,升级后执行以下步骤即可正常编译:
- 打开「Visual Studio 2022 开发者命令提示符」(不要直接用默认PowerShell,会缺少MSVC环境变量)
- 进入Boost解压后的根目录,执行命令:
bootstrap.bat msvc - 生成b2.exe后,执行对应编译命令即可,示例:
.\b2.exe toolset=msvc-14.3 address-model=64 --build-type=complete stage
方案2:不升级Boost 1.77,手动添加vc143适配
如果必须使用1.77版本,可以手动修改配置文件完成适配:
- 打开Boost根目录下的
\tools\build\src\tools\msvc.jam文件 - 找到版本判断的代码段,添加vc143的版本映射:
在类似case 14.2 : { version = 14.2 ; }的行下面新增一行:case 14.3 : { version = 14.3 ; } - 保存文件后,打开Visual Studio 2022开发者命令提示符,回到Boost根目录重新执行
bootstrap.bat msvc即可正常运行 - 后续编译命令和方案1一致即可
方案3:使用MinGW编译
如果要使用MinGW工具集编译,需要按以下步骤操作:
- 提前安装好MinGW-w64编译器,并且将其
bin目录添加到系统环境变量PATH中 - 打开MinGW提供的终端,或在PowerShell中执行
gcc --version确认可以正常输出版本信息 - 进入Boost根目录执行
bootstrap.bat mingw - 生成b2.exe后执行编译命令即可,示例:
.\b2.exe toolset=gcc address-model=64 --build-type=complete stage
内容的提问来源于stack exchange,提问作者Usman Tariq
相关产品推荐
相关产品推荐

