CMake错误:CMake无法找到与“MinGW Makefiles”相对应的构建程序。

31

我正在尝试使用CMake构建C++的Box2D库。当我运行CMake GUI时,出现以下错误:

CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
Configuring incomplete, errors occurred!

大多数人回答这类问题时都会说“将MinGW/bin添加到PATH”,但我已经在PATH中添加了它。还有什么可能导致这个错误?


3
如果您输入 mingw32-make 并按下回车键会发生什么?这不应该输出 'mingw32-make' 不是内部或外部命令,也不是可运行的程序或批处理文件。 相反,它应该输出 mingw32-make: *** 没有指定目标并且找不到 makefile。停止。 - rubenvb
1
它输出了“'mingw32-make' 不是内部或外部命令,也不是可运行的程序或批处理文件”。我安装 MinGW 错误了吗? - Starfruit
好的,至少 mingw32-make 不在你的 PATH 中,这正是 CMake 告诉你的。请检查该程序是否在你的 PATH 中的 bin 目录中。 - rubenvb
不用了,谢谢你的帮助。你知道是否有一个地方可以单独下载那个程序吗? - Starfruit
请点击以下链接以下载相关程序文件:https://app.box.com/shared/static/7wfzv4ux6eo4gms9easv4tvu32wkhj84.zip - MultipleMonomials
5个回答

17

mingw32-make.exe可通过标准的MinGW32安装程序中的相应复选框进行安装:

MinGW32 Installation Manager screenshot

如rubenvb所指出的那样,您仍需要确保它进入您的PATH。如果您通过系统属性编辑环境变量,请务必关闭并重新打开CMake GUI。

如果您更习惯使用make.exe,请安装MSYS并将其用作CMake生成器的MSYS Makefiles。您还需要将mingw\binmsys\1.0\bin都放入您的PATH中。


4

您可以查看此答案:https://dev59.com/vMLra4cB1Zd3GeqPUuwO#74240235

  1. 首先检查系统。

  2. 安装 MINGW https://www.msys2.org/

  3. 使用 pacman 安装 gcc、g++、gdb 和 cmake。

    pacman -S mingw-w64-x86_64-gcc

    pacman -S mingw-w64-x86_64-gdb

    pacman -S mingw-w64-x86_64-cmake

  4. 检查安装:

    gcc --version

    g++ --version

    gdb --version

  5. 编辑环境变量以供您的帐户使用(PATH)

    C:\msys64\mingw64\bin

对于 Vscode 上的 cmake 项目:

  1. 创建一个 cmake 项目:https://code.visualstudio.com/docs/cpp/cmake-linux#_create-a-cmake-project

  2. 选择之前安装的工具包(Toolchain)

  3. 设置 cmake.cmakePath(如果您使用 pacman 安装,则路径应与 gcc/g++ 相同。

    "cmake.cmakePath": "C:\msys64\mingw64\bin\cmake.exe"

  4. 重置 VScode:Ctrl+shift+P 并键入 "CMake:Reset CMake Tools for Extension State"

  5. 配置项目:Ctrl+shift+P 并键入 "CMake: Configure"。您将看到 "built" 目录和生成的文件。


2

我曾经遇到过同样的问题,后来我将以下三个路径添加到系统环境变量中,问题得以解决。

C:\Program Files\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin

C:\Program Files\CMake\bin

C:\opencv\build\install\x64\mingw\bin


2
在路径MinGW\bin中尝试查找make.exemingw32-make.exe。如果没有,则可以通过标准的MinGW32安装程序安装mingw32-make.exe,如上一个答案所示。
然后再复制一份make.exemingw32-make.exe,以获得这些名称的两个相同文件make.exemingw32-make.exe>,这解决了我的问题。

0
如果你为了方便将名为mingw32-make.exe的文件改成make.exe,那么你需要复制一份make.exe并将其重命名为mingw32-make.exe。 我认为cmake不会识别make.exe,而是会识别mingw32-make.exe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接