You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Visual Studio 2017 Windows环境下无法构建Boost x64库

解决Boost x64构建仍生成x86库的问题

我之前也碰到过一模一样的坑——明明指定了x64参数,结果出来的还是x86库,大概率是构建残留没清干净、环境没选对或者参数配置有歧义导致的。给你几个针对性的解决步骤:

1. 彻底清理构建残留(关键!)

Boost的b2工具会在源码目录下的bin.v2文件夹里存构建中间产物,就算你删了stage/x64目录,这个文件夹里的旧缓存还是会干扰新构建:

  • 直接删除Boost根目录下的bin.v2文件夹
  • 同时清空你指定的stage/x64目录,确保没有旧的x86库残留

2. 切换到正确的MSVC命令行环境

Windows下构建x64库必须用x64版本的VS命令提示符,不能用默认的x86环境:

  • 如果你用的是VS2017(对应msvc-14.1),找到「x64 Native Tools Command Prompt for VS 2017」并打开
  • 全程在这个命令行窗口里操作,切换到Boost根目录后再执行构建命令

3. 修正构建命令的参数(避免歧义)

有时候参数顺序和写法会影响b2的解析,建议调整参数顺序,并明确指定架构:

b2.exe -j4 toolset=msvc-14.1 address-model=64 architecture=x86_64 link=static threading=multi runtime-link=shared --build-type=minimal stage --stagedir=stage/x64

注意:把原来的architecture=x86改成architecture=x86_64,虽然address-model=64已经能指定64位,但明确写x86_64能彻底避免架构歧义。

4. 检查project-config.jam的硬编码配置

如果你的project-config.jam里写死了x86相关配置,会直接覆盖命令行参数:

  • 打开Boost根目录下的project-config.jam
  • 查找是否有类似using msvc : 14.1 : : : address-model=32 ;的行,要是有,把address-model改成64,或者直接删掉这一行,让命令行参数生效

验证结果

构建完成后去stage/x64/lib目录看库文件名,比如boost_thread-vc141-mt-x64-1_81.lib(假设Boost版本是1.81),文件名里的x64就说明是正确的64位库了。

内容的提问来源于stack exchange,提问作者Qizot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:12:14