You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何修复MinGW Makefiles生成器不支持x64平台指定的错误?

解决Morse模拟器编译及dlib安装的CMake编译器/平台冲突问题

我来帮你拆解这两个关联的问题——本质都是CMake在Windows环境下和MinGW工具链的适配冲突导致的,咱们一步步来解决:

一、先解决Morse的winbuild.bat平台错误

你遇到的Generator MinGW Makefiles does not support platform specification, but platform x64 was specified错误,核心原因很明确:MinGW Makefiles这个CMake生成器,本身不支持通过-A x64这类参数指定平台。MinGW是靠自身工具链的位数(32/64位)来决定编译目标的,不需要CMake额外指定平台参数。

修复步骤:

  1. 修改winbuild.bat的CMake调用
    打开winbuild.bat文件,找到里面调用CMake的那一行(类似cmake .. -G "MinGW Makefiles" -A x64 ...),直接删掉-A x64这个平台指定参数。
  2. 确保编译器参数正确配置
    把你之前测试有效的编译器指定参数整合到CMake命令里,注意路径用Windows格式(避免用/c/这种WSL风格路径,改用C:/MinGW/bin/gcc.exe或者转义反斜杠的C:\\MinGW\\bin\\gcc.exe),最终CMake调用大概是:
    cmake .. -G "MinGW Makefiles" -DCMAKE_C_COMPILER=C:/MinGW/bin/gcc.exe -DCMAKE_CXX_COMPILER=C:/MinGW/bin/g++.exe
    
  3. 验证MinGW版本
    确认你装的是MinGW-w64(64位版本),而不是旧版的32位MinGW——只有64位的MinGW才能编译出64位的Morse程序,这也能替代-A x64的作用。

二、解决pip安装dlib的编译器找不到问题

虽然你已经把CMake和MinGW/bin加到了系统PATH,但pip调用CMake时可能存在优先级问题,或者没有传递正确的编译器参数。

修复步骤:

  1. 直接给pip传递CMake编译器参数
    在命令提示符里执行以下命令,强制指定编译器路径:
    pip install dlib --install-option="--cmake-args=-DCMAKE_C_COMPILER=C:/MinGW/bin/gcc.exe -DCMAKE_CXX_COMPILER=C:/MinGW/bin/g++.exe"
    
  2. 调整PATH优先级
    把MinGW的bin目录移到系统PATH的最顶端,避免VS的cl.exe等编译器被优先识别(如果你同时装了VS的话)。修改PATH后一定要重启命令提示符,确保新的PATH生效。
  3. 用CMake GUI验证工具链
    打开CMake GUI,点击「Browse Source」选择dlib的源码(如果是pip自动下载的,你可以先手动下载dlib源码包),「Browse Build」选一个临时目录,然后点击「Configure」,选择「MinGW Makefiles」,看CMake是否能自动找到gcc和g++。如果不能,手动指定路径后再点击「Configure」,如果能成功配置,说明工具链本身没问题,问题出在pip的调用逻辑上,这时候可以手动编译dlib后再用pip安装本地版本。

额外注意点

  • 如果你不需要VS的编译器,可以暂时把VS相关的路径从PATH里移除,减少冲突概率;
  • 不要同时混用MSVC和MinGW的编译环境,选一个就好,避免CMake混淆;
  • 重装CMake/MinGW后,一定要重启系统或命令提示符,确保环境变量完全生效。

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

火山引擎 最新活动