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

CMake构建未使用配置阶段指定的x64架构问题求助

解决指定x64架构却生成32位可执行文件的问题

问题根源

Conan生成的conan_toolchain.cmake已经锁定了32位架构配置,其优先级高于CMake命令中指定的-A x64参数。由于所有依赖都是32位版本,编译过程中不存在依赖缺失,因此CMake未抛出报错,最终生成32位可执行文件。

解决步骤

1. 重新生成64位Conan依赖与toolchain文件

首先清空project_folder\build目录下的所有文件(避免缓存残留干扰),然后根据你的Conan版本执行对应命令:

Conan 2.x 版本:

conan install .. --settings arch=x86_64 --settings build_type=Release --output-folder=build

Conan 1.x 版本:

conan install .. -s arch=x86_64 -s build_type=Release

执行完成后,build目录会生成适配x64架构的conan_toolchain.cmake和对应的64位依赖库。

2. 重新执行CMake配置与构建

进入project_folder\build目录,运行以下命令:

cmake .. -G "Visual Studio 17 2022" -A x64 -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake"
cmake --build . --config Release

3. 验证生成文件架构

检查最终生成的可执行文件,64位PE文件的标识为PE+(32位为PE L),确认架构符合预期。

额外排查要点

  • 检查项目的conanfile.txt或conanfile.py,确保没有硬编码arch=x86之类的32位强制设置
  • 查看CMakeLists.txt,确认不存在set(CMAKE_CXX_FLAGS "-m32")或set(CMAKE_SIZEOF_VOID_P 4)这类强制32位编译的配置
  • 确保使用的Visual Studio开发者命令提示符为x64 Native Tools Command Prompt,避免环境变量对架构选择的干扰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:08:23