我正在尝试运行我的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
答案 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