make:c:找不到命令

时间:2011-03-10 07:26:33

标签: c++ linux makefile cygwin

我正在尝试运行我的make文件但是我收到以下两个错误:

make:c:找不到命令

make:o:找不到命令

我试图在cygwin中做这个。我有g ++并在其上安装,但是当我运行make文件时,我收到了这些错误。

有什么想法吗?

makefile:

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

2 个答案:

答案 0 :(得分:5)

您需要从$行中删除$g++。它正在尝试扩展一些不存在的变量,并且正在从命令中吞下“$g++ -”。

使用变量的语法是:

$(CXX) -c main.cpp

在这种情况下,CXX是C ++编译器的路径,它是为您定义的。您可以通过在makefile中添加以下行来更改它:

CXX = g++

如果您试图避免回显命令make正在运行,请使用@而不是$

答案 1 :(得分:1)

$ g ++未在该makefile中定义,因此命令变为

-o MergeSort main.o MergeSort.o

-c main.cpp

从$ g ++中删除$并使用g ++,或者在makefile中定义变量。

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