2016-11-28 148 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的概念,我非常感謝。謝謝! –