CMAKE_MAKE_PROGRAM not found
我已经通过CMake达到了尽头。它具有巨大的潜力,但我似乎无法使其找到基本的系统工具(即
症状
CMake和CMake GUI生成以下内容(删除CMakeCache.txt文件之后):
1 2 3 | 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. |
我专注于在此问题中找到
系统
Windows 7(64位); MinGW的多个版本(32位/ 64位); Cmake 2.8.4;
MinGW的NONSTANDARD安装位置(c:/ MinGW-32)。
我尝试过的东西
CMakelists.txt在文件的前10行中包含
CMakelists.txt的早期版本包含:
1 2 3 4 5 | 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 ) |
在运行CMake或CMake-GUI之前,请在cmd.exe环境变量中设置
使用标识
一件有效的事
如果我使用GUI填充
问题
如果通过GUI识别make程序的名称,则可以使CMake正常工作。如何使CMake无需用户干预Windows 7(64位)/ MinGW组合即可找到我的make程序?
我有两个建议:
您的%PATH%环境变量中有make吗?在我的系统上,我需要将%MINGW_DIR%\ bin添加到%PATH%。
你已经安装了吗?根据您的mingw安装,它可以是单独的软件包。
不得已:您可以在命令行中通过完整路径吗?
在GUI中,选择"高级"复选框。现在,它应该在下面显示几个条目。将您的mingw32-make.exe文件重命名为make.exe(您可以复制一个文件),并将CMAKE_MAKE_PROGRAM文件路径变量设置为该文件的位置。
我刚刚解决了同样的问题。我安装了带有GCC和G ++的MinGW,但没有安装
1 | mingw-get.exe install mingw32-make |
运行它之后,清除CMake缓存(删除CMake工作目录中的
我试图安装缺少的软件包。在我的情况下,安装工具链并重新启动CLion可以解决所有问题:
1 2 3 4 | 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 |
先前的建议建议(重新)安装或配置CMake,但它们均无济于事。
以前MinGW的Make编译使用文件名
只需复制
在ubuntu上,我认为我缺少编译器。固定于:
1 | sudo apt install build-essential |
最近我遇到了同样的问题(在WIN764上用CMake和Qt / MinGW编译OpenCV)
而且我想我可以通过%MINGW_DIR%\ bin和%CMAKE_DIR%/ bin在环境变量PATH(通过
此外,我在一个简单的目录上安装了cmake2.8(上面没有空格)
当我尝试使用Qt Creator(MinGW)编译OpenCV来构建.a静态库文件时,我遇到了完全相同的问题。
对于那些为Windows 32位(MinGW 4.8,OpenGL,634 MB)安装了Qt 5.2.1的用户,如果将以下内容添加到系统的环境变量
1 | C:\\Qt\\Qt5.2.0\\Tools\\mingw48_32\\bin |
我遇到了同样的问题,并在工具链文件中指定了CMAKE_MAKE_PROGRAM,cmake找不到它。然后,我尝试在命令行中添加-D CMAKE_MAKE_PROGRAM = ...,然后它起作用了。然后,我尝试将生成器从" MinGW Makefiles"更改为" Unix Makefiles",并从命令行中删除了-D CMAKE_MAKE_PROGRAM,然后它也起作用了!
因此,出于某种原因,当生成器设置为" MinGW Makefiles"时,工具链文件中的CMAKE_MAKE_PROGRAM设置无效,但对于" Unix Makefiles"生成器却有效。
好吧,如果有用的话,我在使用cmake时遇到了几个问题,包括这个问题。当我在系统中修复全局变量(在我的情况下为MinGW Codeblocks)PATH时,它们都消失了。当代码块安装不是默认安装时,由于某种未知的原因,此全局变量未指向正确的位置。检查代码块或MinGW的路径是否正确:
右键单击"我的电脑">"属性">"高级属性"或"高级">"环境变量">,以更改PATH变量
它对我有用;)
我有同样的问题。
使用http://tdm-gcc.tdragon.net/提供的安装程序安装了mingw。在安装mingw时,它将正确的环境变量添加到路径中(无需手动编辑路径变量)。
那对我有用。
似乎每个人都有不同的解决方案。我解决了我的问题,例如:
当我安装64位mingw时,它将自身安装到:" C:\ Program Files \ mingw-w64 \ x86_64-5.1.0-posix-seh-rt_v4-rev0 \ mingw64 \ bin"
尽管mingw-make.exe在上面的路径下,但一个无效的字符或长路径名使CMake感到困惑。我尝试将路径添加到环境路径,尝试将CMAKE作为对我不起作用的参数。
最后,我将mingw-w64的复杂路径移至" C:/ mingw64",然后设置环境路径,然后重新启动CMake。问题为我解决了。
我试图使用CMake在mingw上为Windows上的Qt构建GammaRay。因此,我安装了Qt。我和这里的其他用户有同样的问题。
对我有用的方法是从Qt构建提示(由Qt安装程序在"开始菜单\所有程序\ Qt {QT_VERSION}"文件夹中创建的快捷方式)启动cmake-gui。
我有使用以下方法解决的相同问题:
尝试将所有文??件夹重命名为不超过8个字符且没有空格。
我必须在Windows路径中添加以下行以解决此问题。 CMAKE应该在安装时设置正确的路径,否则,只要您选中此框即可。根据可能安装的多种版本,这可能是不同的解决方案。
1 2 | C:\\msys64\\mingw32\\bin C:\\msys64\\mingw64\\bin |
当我只想用mingw32编译opencv2.3.2(在tdm-gcc套件中)时,也会发生这种情况。通常,当我安装tdm-gcc时,我想将mingw32-make.exe重命名为make.exe。我认为这可能是个问题。如果要求cmake生成MinGW Makefile,它将尝试查找ming32-make.exe而不是make.exe。所以我将make.exe复制到mingw32-make.exe并在Cmake-gui中重新配置。终于成功了!因此,我建议您查找是否
您是否拥有mingw32-make.exe来解决此问题。