2011-03-10 59 views
1

我試圖運行我的make文件但是我得到以下兩個錯誤:化妝:C:命令未找到

化妝:C:命令未找到

化妝:○ :命令未找到

我正在嘗試在cygwin中執行此操作。我有g ++並在其上安裝,但是當我運行make文件時,我收到了這些錯誤。

任何想法?

生成文件:

all: MergeSort clean 

MergeSort: main.o MergeSort.o 
    $g++ -o MergeSort main.o MergeSort.o 

main.o: main.cpp MergeSort.h 
    $g++ -c main.cpp 

MergeSort.o: MergeSort.cpp MergeSort.h 
    $g++ -c MergeSort.cpp 

clean: 
    rm -rf *o 

cleanall: 
    rm -rf *o *exe 
+0

該文件說...? – 2011-03-10 07:28:12

+1

發佈你的makefile,以及你如何運行它。 – 2011-03-10 07:28:22

+0

http://codepad.org/UPInzxwg這是make文件,我通過在它所在的目錄中輸入「make」來運行它(這裏只有我的文件和makefile文件) – Matt 2011-03-10 07:31:02

回答

5

您需要從$g++線取下$。它試圖擴展一些不存在的變量,併吞噬你的命令中的「$g++ -」。

用於使用可變的語法是:

$(CXX) -c main.cpp 

在這種情況下,CXX是路徑到C++編譯器,這是爲你定義。您可以通過添加下面一行到你的Makefile改變:

CXX = g++ 

如果你正試圖避免回顯命令化妝運行,使用@代替$

+0

謝謝你的幫助,這個工作完美。 – Matt 2011-03-10 07:44:03

1

$克++未在該生成文件定義,因此該命令變得

-o MergeSort main.o MergeSort.o 

-c main.cpp 

要麼丟棄從$克++的$並使用G ++,或在生成文件定義變量。

CXX = g++ 
all: MergeSort clean 

MergeSort: main.o MergeSort.o 
    $CXX -o MergeSort main.o MergeSort.o 

main.o: main.cpp MergeSort.h 
    $CXX -c main.cpp 

MergeSort.o: MergeSort.cpp MergeSort.h 
    $CXX -c MergeSort.cpp 

clean: 
    rm -rf *o 

cleanall: 
    rm -rf *o *exe