2011-03-10 58 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