Windows 11 ARM64架构下编译Boost 1.86共享库遇命名异常问题求助
解决Windows 11 ARM64下Boost 1.86编译库带x64标识的问题
你当前的命令仅指定了address-model=64,但Boost的b2构建系统默认会将64位地址模型关联到x86_64架构,因此需要明确指定ARM架构参数来覆盖默认行为。
修正后的编译命令
- 保持bootstrap命令不变:
.\bootstrap --with-libraries=regex - 修改b2命令,添加
architecture=arm参数,确保编译目标为ARM64架构:
若需更明确指定ARM64工具集,可补充.\b2 architecture=arm address-model=64 cxxflags="-arch arm64" --link=shared --variant=releasetoolset=msvc-arm64:.\b2 toolset=msvc-arm64 architecture=arm address-model=64 cxxflags="-arch arm64" --link=shared --variant=release
关键注意事项
- 必须使用ARM64版本的Visual Studio Developer Command Prompt执行编译命令,若使用x64版本命令行,即便添加架构参数,工具链仍会默认生成x64目标文件。
- 修正后生成的库文件名会带有
arm64标识,例如:libboost_regex-vc143-mt-arm64-1_86.lib
内容的提问来源于stack exchange,提问作者Fox1942
相关产品推荐
相关产品推荐

