make: c: 未找到命令

发布于 2024-10-21 07:48:10 字数 505 浏览 1 评论 0原文

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

make: c: command not found

make: o: command not find

我正在尝试在 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

I am attempting to run my make file however i am getting the following two errors:

make: c: command not found

and

make: o: command not found

I am attempting to do this inside of cygwin. I have g++ and make installed on it, however when I run the make file I receive these errors.

Any ideas?

The 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

红焚 2024-10-28 07:48:10

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

使用变量的语法是:

$(CXX) -c main.cpp

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

CXX = g++

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

You need to remove the $ from the $g++ lines. It's trying to expand some variable that doesn't exist, and is swallowing up the "$g++ -" from your commands.

The syntax for using a variable is:

$(CXX) -c main.cpp

In this case, CXX is the path to the C++ compiler, which is defined for you. You can change it by adding the following line to your makefile:

CXX = g++

If you are trying to avoid echoing back the command make is running, use @ instead of $.

以歌曲疗慰 2024-10-28 07:48:10

$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

$g++ is not defined in that makefile, so the command becomes

-o MergeSort main.o MergeSort.o

and

-c main.cpp

Either drop the $ from $g++ and use g++, or define the variable in your 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文