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

Windows下VS2019使用CMake预设将x64改为x86_64后构建失败

问题原因
  • 首先是CMake Preset配置值不合法:针对MSVC编译工具链,architecture.value字段的合法取值只有x86、x64、arm、arm64四个,不存在x86_64这个标识——x86_64是GCC/Linux生态常用的64位x86架构命名,VS自带的CMake工具链无法识别。
  • 两个场景的环境初始化逻辑差异导致表现不同:
    • 你在独立CMD中能构建成功,是因为当前CMD已经提前初始化了x64位MSVC编译环境(比如通过x64原生工具命令提示符打开、或提前执行过vcvarsall.bat x64),加上配置中architecture.strategy设为external,CMake本身不会校验architecture值的合法性,直接复用当前已有的环境变量完成构建,非法值被直接忽略。
    • VS2019内置的CMake功能不会提前继承全局开发者环境,它会读取architecture.value的值,自动调用对应架构的vcvars脚本初始化编译环境。遇到无法识别的x86_64值时,它会错误回退到x86编译工具链,且环境初始化流程没有正确把32位工具链对应的rc.exe、mt.exe路径加入PATH,最终出现编译器测试失败、找不到文件的报错,从报错日志里的/machine:X86链接参数、HostX64/x86/cl.exe编译器路径也能佐证它错误加载了32位目标环境。
解决方法

直接把architecture.value字段的值改回x64即可,这就是MSVC工具链下64位x86架构的正确配置值,修改后VS内置CMake会自动匹配HostX64/x64的编译器、正确初始化64位编译环境,即可正常构建。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:12:20