制作: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:找不到命令的主要内容,如果未能解决你的问题,请参考以下文章

Python discord bot“找不到命令'ban'”错误

找不到自动制作错误“./ltmain.sh”

找不到 PyInstaller 库

qgis 找不到grass,要指定grass的安装路径吗

Makefile 错误:找不到命令 - 创建共享库时

crontab:macos中的“找不到ftp命令”错误[重复]