2016-11-28 146 views
0
# Makefile 
run: a.exe 
    start cmd /c "a.exe & pause" 
a.exe: main.cpp Makefile 
    g++ main.cpp 

此生成的文件和我的老版“的mingw32-的make.exe”效果很好,该版本是当今cmd命令启动无法与新版本的mingw32-make.exe一起使用?

> mingw32-make -v 
GNU Make 3.82.90 
Built for i686-pc-mingw32 
Copyright (C) 1988-2012 Free Software Foundation, Inc. 
etc. 

我认识了一个新的软件叫mysy2,我下载的mingw32最后用它。和文件makefile,不再工作。版本信息是:

> mingw32-make -v 
GNU Make 4.1.90 
Built for Windows32 
Copyright (C) 1988-2014 Free Software Foundation, Inc. 
etc. 

当我运行与生成文件的新的mingw32-make时,只是说

> mingw32-make 
start cmd /c "a.exe & pause" 
process_begin: CreateProcess(NULL, start cmd /c "a.exe & pause", ...) failed. 
make (e=2): 系统找不到指定的文件。#it is "system can't find the file" in chinese 
Makefile:2: recipe for target 'run' failed 
make: *** [run] Error 2 

谁?

+0

想知道为什么你总是使用GNU make的预发布版本而不是最终版本(在GNU make中,所有版本的x.y.9z都被认为是alpha/beta/release候选版本)?你在哪里下载这些? – MadScientist

+0

@MadScientist第一部分是“用mingw for windows代码块”的一部分,codeblocks是一个跨平台的c/C++ IDE。第二个是在msys2下载的,msys2是windows上的“pacman + bash”。 –

回答

0

最后,我刚刚删除了所有的GNU make自带的MingW,并去Make for Windows下载网页上的最后一个版本,现在是3.81,而且很可能不会永远更新它。

+0

我认为你应该改变你的陈述,即“codeblocks”(无论是什么)或“msys2”不关心GNU make for Windows,如果他们提供预发布版本的软件作为最终版本,特别是在实际发布是在几个月前完成的。 GNU make不是作为_ANY_系统上的预构建二进制文件(由FSF)提供的,而不仅仅是Windows;它仅作为源代码提供。你可以在Windows上自己构建它,就像你可以在任何非Windows系统上自己构建它一样。诚然,Windows的处理方式与其他系统一样,并不意味着它被“讨厌”。 – MadScientist

+0

@MadScientist编辑已完成。感谢您澄清关于GNU make的概念,我非常感谢。谢谢! –