找不到CMAKE_MAKE_PROGRAM

wes*_*314 59 mingw makefile cmake

我已经用Cmake到达了绳子的尽头; 它有很大的潜力,但我似乎无法让它找到基本的系统工具(即"制造")才能发挥作用.

症状

Cmake和Cmake GUI生成以下内容(删除CMakeCache.txt文件后):

Processing top-level CMakelists.txt for project swb
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.
Run Code Online (Sandbox Code Playgroud)

我正专注于在这个问题中找到"make",但是,我也遇到了很多相同的问题,CMake无法找到库和其他实用程序文件(链接器,nm,ar等).我在下面列出的技术似乎使CMake能够在Linux下运行时找到这些文件.

系统

Windows 7(64位); MinGW的多个版本(32位/ 64位); Cmake 2.8.4; NONSTANDARD为MinGW安装位置(c:/ MinGW-32).

我做过的事情

1)CMakelists.txt在文件的前10行中包含"SET(CMAKE_MAKE_PROGRAM c:/MinGW-32/bin/make.exe FORCE)".

2)以前版本的CMakelists.txt包含:

find_program(CMAKE_MAKE_PROGRAM
  NAMES make
        make.exe
  DOC "Find a suitable make program for building under Windows/MinGW"
  HINTS c:/MinGW-32/bin )  
Run Code Online (Sandbox Code Playgroud)

3)在运行CMake或CMake-GUI之前,在cmd.exe环境变量中设置CMAKE_MAKE_PROGRAM.

4)使用标识CMAKE_MAKE_PROGRAM以及CMAKE_C_COMPILER等的"工具链"文件.

一件事已经工作

如果我使用GUI填充CMAKE_MAKE_PROGRAM变量("C:/MinGW-32/bin/make.exe"),CMake将成功创建构建文件.

问题(S)

如果我通过GUI识别make程序的名称,我可以让CMake工作.如何让CMake无需用户干预Windows 7(64位)/ MinGW组合即可找到我的make程序?

And*_*dré 30

我有两个建议:

  1. 你有%PATH%环境变量吗?在我的系统上,我需要将%MINGW_DIR%\ bin添加到%PATH%.

  2. 你有安装吗?根据您的mingw安装,它可以是单独的包.

  3. 最后的手段:你能否在命令行上传递完整的路径? cmake -D"CMAKE_MAKE_PROGRAM:PATH=C:/MinGW-32/bin/make.exe" ..\Source

  • CMake是否会搜索"make"或"mingw32-make"?如果是后者,那个人也必须在路径中. (5认同)

Cpt*_*tAJ 21

在GUI中,选择"高级"复选框.它现在应该在下面显示几个条目.将mingw32-make.exe文件重命名为make.exe(您只需制作副本)并将CMAKE_MAKE_PROGRAM文件路径变量设置为所述文件的位置.

  • 这应该是接受的答案.它对我有用:检查'高级',然后出现CMAKE_MAKE_PROGRAM变量.只需将NOT_FOUND_SOMETHING更改为C:/MinGW/bin/make.exe或其任何路径. (2认同)

Mel*_*ius 11

刚刚解决了同样的问题.我安装了GCC和G ++的MinGW但不是Make本身.所以这个命令帮助了我:

mingw-get.exe install mingw32-make
Run Code Online (Sandbox Code Playgroud)

然后清除CMake缓存(CMakeCache.txt在CMake的工作目录中)并再次运行CMake.

  • 在MinGW基本设置中,包括mingw32-base来获取make. (2认同)

Eri*_*ulz 7

在 ubuntu 上,我想我错过了编译器。固定:

sudo apt install build-essential
Run Code Online (Sandbox Code Playgroud)


Ber*_*ann 5

以前的答案建议(重新)安装或配置CMake,他们都没有帮助.

以前MinGW的Make汇编使用了文件名mingw32-make.exe,现在就是make.exe.大多数建议的方法配置CMake使用其他文件不起作用.

只需复制make.exe并重命名副本即可mingw32-make.exe.


Umu*_*zun 5

我试图安装缺少的软件包。在我的情况下,安装工具链并重新启动CLion可以解决所有问题:

pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-extra-cmake-modules
pacman -S mingw-w64-x86_64-make
pacman -S mingw-w64-x86_64-gdb
pacman -S mingw-w64-x86_64-toolchain
Run Code Online (Sandbox Code Playgroud)