制作:c:找不到命令
Posted
技术标签:
【中文标题】制作:c:找不到命令【英文标题】:make: c: command not found 【发布时间】:2011-03-10 07:26:32 【问题描述】:我正在尝试运行我的 make 文件,但出现以下两个错误:
make: c: 找不到命令
和
make: o: 找不到命令
我正在尝试在 cygwin 中执行此操作。我已经安装了 g++ 和 make,但是当我运行 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
【问题讨论】:
发布你的makefile,以及你是如何运行它的。 codepad.org/UPInzxwg 这是make文件,我在它所在的目录中键入“make”来运行它(那里只有我的文件和makefile。) 我在问题正文中添加了 Makefile。在将代码发布到 SO 时不要使用像 codepad 或 pastebin 这样的网站:如果您的代码示例消失了,那么问题将变得毫无意义。此外,必须打开另一个网页才能看到源代码真的很烦人,尤其是当它很小的时候。 【参考方案1】:您需要从$g++
行中删除$
。它试图扩展一些不存在的变量,并从您的命令中吞噬“$g++ -
”。
使用变量的语法是:
$(CXX) -c main.cpp
在这种情况下,CXX
是为您定义的 C++ 编译器的路径。您可以通过将以下行添加到您的 makefile 来更改它:
CXX = g++
如果您试图避免回显正在运行的命令 make,请使用 @
而不是 $
。
【讨论】:
【参考方案2】:$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
【讨论】:
我认为您应该将$CXX
与$(CXX)
交换为GNU Make(OP 似乎在询问)。以上是关于制作:c:找不到命令的主要内容,如果未能解决你的问题,请参考以下文章