English 中文(简体)
找不到CMAKE_MAKE_PROGRAM
原标题:CMAKE_MAKE_PROGRAM not found

我和CMake已经到了极限;它有很大的潜力,但我似乎无法让它找到基本的系统工具(即make)来发挥作用。

SYMPTOMS

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.

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

SYSTEM

Windows 7 (64-bit); multiple versions of MinGW (32-bit/64-bit); Cmake 2.8.4; NONSTANDARD install location for MinGW (c:/MinGW-32 ).

THINGS I HAVE TRIED

  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 )  
    
  3. 在运行CMAKE或CMAKE GUI之前,在cmd.exe环境变量中设置CMAKE_MAKE_PROGRAM

  4. 使用“工具链”文件,该文件标识CMAKE_MAKE_PROGRAM以及CMAKE_C_COMPLER等。

ONE THING THAT HAS WORKED

如果我使用GUI填充CMake_MAKE_PROGRAM变量(“C:\/MinGW-32/bin/MAKE.exe”),CMake将成功创建构建文件。

QUESTION(S)

如果我通过GUI识别make程序的名称,我就可以让CMake工作如何使用Windows7(64位)/MinGW组合,使CMake能够在没有用户干预的情况下找到我的make程序

问题回答

我有两个建议:

  1. 您的%PATH%环境变量中有make吗?在我的系统上,我需要将%MINGW_DIR%添加到%PATH%中。

  2. 你安装了make吗?根据您的mingw安装,它可以是一个单独的软件包。

  3. 万不得已:你能在命令行上通过完整的路径吗cmake-D“cmake_MAKE_PROGRAM:PATH=C:/MinGW-32/bin/MAKE.exe”..源

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

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

sudo apt install build-essential

我刚刚解决了同样的问题。我安装了带有GCC和G++的MinGW,但没有make。这个命令帮助了我:

mingw-get.exe install mingw32-make

运行后,清除CMake缓存(删除CMake工作目录中的CMakeCache.txt文件),然后再次运行CMake。

之前的回答建议(重新)安装或配置CMake,但都没有帮助。

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

只需复制make.exe并将副本重命名为mingw32-make.exe

我已尝试安装丢失的程序包。安装工具链并重新启动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

最近我遇到了同样的问题(在WIN764上用CMake和Qt/MinGW编译OpenCV)

我想我解决了这个问题,包括在我的环境变量PATH上(通过控制面板所有控制面板项目系统高级系统设置)使用%MINGW_DIR%in和%CMAKE_DIR%/bin

此外,我在一个简单的目录上安装了cmake2.8(上面没有空格)

当我试图用Qt Creator(MinGW)编译OpenCV来构建.a静态库文件时,我也遇到了同样的问题。

对于那些安装了Qt 5.2.1 for Windows 32位(MinGW 4.8,OpenGL,634 MB),如果将以下内容添加到系统的环境变量路径,则可以解决此问题:

C:QtQt5.2.0Toolsmingw48_32in

I had the same problem. Installed mingw using the installer provided at http://tdm-gcc.tdragon.net/ . It adds the correct environment variables to path when installing mingw (No need to edit the path variable manually). That did the trick for me.

好吧,如果有用的话,我在cmake上遇到过几个问题,包括这个问题。当我修复系统中的全局变量(在我的例子中是MinGW代码块)PATH时,它们都消失了。当代码块安装不是默认的,并且由于某种未知的原因,这个全局变量没有指向正确的位置。检查代码块或MinGW的路径是否正确:

右键单击“我的电脑”>;属性>;高级属性或高级>;环境变量>;要更改PATH变量

它对我有效;)

我遇到了同样的问题,并在工具链文件中指定了CMAKE_MAKE_PROGRAM,CMAKE找不到它。然后我尝试添加-D CMAKE_MAKE_PROGRAM=。。。在命令行中,它就工作了。然后,我尝试将生成器从“MinGW Makefiles”更改为“Unix Makefiles“,并从命令行中删除-D CMAKE_MAKE_PROGRAM,然后它也工作了!

因此,由于某种原因,当生成器设置为“MinGW Makefiles”时,工具链文件中的CMAKE_MAKE_PROGRAM设置是无效的,但对于“Unix Makefiles”生成器来说是有效的。

似乎每个人都有不同的解决方案。我解决了我的问题,比如:

当我安装64位mingw时,它将自己安装到:“C:Program Filesmingw-w64x86_64-5.1.0-posix-seh-rt_v4-rev0mingw64 in”

事件尽管mingw-make.exe在上面的路径下,但一个无效的字符或长路径名混淆了CMake。我尝试将路径添加到环境路径中,尝试将CMAKE作为参数,但它对我不起作用。

最后,我将mingw-w64的复杂路径移动到“C:/mingw64”,然后设置环境路径,重新启动CMake。问题为我解决了。

我遇到了同样的问题,使用以下方法解决了这个问题:

请尝试重命名所有文件夹,使其不超过8个字符,并且不包含空格。

It also happens when I just want to compile opencv2.3.2 with mingw32 (in tdm-gcc suites). Often when I install the tdm-gcc, I would like to rename the mingw32-make.exe to make.exe. And I thinks this could be the question. If cmake is asked to generated a MinGW Makefiles, It would try to find ming32-make.exe instead of make.exe. So I copy the make.exe to mingw32-make.exe and reconfigure in Cmake-gui. Finally it works! So I d like to advise to find whether you have mingw32-make.exe or not to solve this question.

我试着用CMake在Windows上用mingw为Qt构建GammaRay。所以,我安装了Qt。我和这里的其他用户遇到了同样的问题。

对我有效的方法是从Qt构建提示启动cmake gui(Qt安装程序在“Start MenuAll programsQt{Qt_VERSION}”文件夹中创建的快捷方式)。

我不得不在我的windows路径中添加以下行来解决这个问题。CMAKE应该在安装时设置正确的路径,否则,只要您选中该框。这可能是一个不同的解决方案,取决于可能安装的无数版本。

C:msys64mingw32in
C:msys64mingw64in




相关问题
PCSC-Lite Codes on Windows

I ve successfully built a program that can read Mifare 1K Card using Qt on Linux. So now, I would like it to run on Windows. From what I ve gathered, there s no PCSC-Lite port on Windows and I need to ...

mingw + python eagerly translating path

I am using: Windows XP Python 2.6.2 (standard install from python.org) git version 1.6.5.1-preview20091022 (installed from http://code.google.com/p/msysgit/) I have an environment variable looking ...

Conversion specifier of long double in C

The long double data type can have these conversion specifiers in C: %Le,%LE,%Lf,%Lg,%LG (reference). I wrote a small program to test : #include <stdio.h> int main(void) { long double d = ...

Linux Development C/C++/bash/python on windows-7

Before resorting to stackoverflow, i have spend a lot of times looking for the solutions. I have been a linux-user/developer for few years, now shifting to windows-7. I am looking for seting-up a ...

Gvim, MinGW and Powershell making them work the CLI way

Just shifted to windows7. Liking it :). Is there a way to install MinGW in windows, such that, i can cd to my code directory (which is different from MinGW install directory) and compile my code there....

Which version of gcc to install with MinGW?

If compiling and linking with MinGW gcc v3 is painfully slow, and gcc v4 is not the default install option: What, for a beginner are the advantages/disadvantages of installing one version or another? ...

热门标签