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

MinGW如何强制使用64位编译器替代32位(Windows pybind11场景)

错误原因

当前使用的MinGW编译器位数与已安装的Python位数不匹配,生成.vcxproj文件是因为历史CMake缓存中残留了Visual Studio生成器的配置记录。

解决步骤

  • 第一步:清理CMake缓存
    删除项目目录下的CMakeCache.txt文件和CMakeFiles文件夹,避免旧配置干扰后续生成过程。
  • 第二步:校验MinGW位数与Python匹配
    打开终端执行gcc -v,查看输出中Target字段:
    • 显示x86_64-w64-mingw32为64位MinGW,对应64位Python
    • 显示i686-w64-mingw32为32位MinGW,对应32位Python
      若位数不匹配,更换对应位数的MinGW版本后再执行后续操作。
  • 第三步:执行CMake生成命令
    确保MinGW的bin目录已加入系统环境变量PATH,执行如下命令生成Makefile:
    64位环境命令:
    cmake . -G "MinGW Makefiles" -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++
    
    32位环境命令:
    cmake . -G "MinGW Makefiles" -DCMAKE_C_COMPILER=i686-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=i686-w64-mingw32-g++
    
  • 第四步:编译生成.pyd文件
    生成Makefile后执行mingw32-make命令,编译完成后即可得到可直接导入Python使用的.pyd文件。

注意事项

  • Python与MinGW的位数必须严格一致,否则会持续出现位数不匹配报错
  • 每次更换编译器、生成器前,必须完全清理CMake缓存
  • 执行cmake命令前可先运行gcc --version,确认终端调用的是对应位数的MinGW编译器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:27:04