【发布时间】:2012-03-27 08:54:16
【问题描述】:
我不断收到此错误:
make: *** No rule to make target `all'. Stop.
即使我的 make 文件看起来像这样:
CC=gcc
CFLAGS=-c -Wall
all: build
build: inputText.o outputText.o main.o
gcc main.o inputText.o outputText.o -o main
main.o: main.c
$(CC) $(CFLAGS) main.c -o main.o
inputText.o: inputText.c
$(CC) $(CFLAGS) inputText.c -o inputText.o
outputText.o: outputText.c
$(CC) $(CFLAGS) outputText.c -o outputText.o
是的,目标下方应该有一个制表符空间,并且在我的 make 文件中。
如果我尝试 main.o、inputText.o 和 outputText.o 等目标之一,我可以让它工作,但不能使用 build 或 all。
编辑: 我只是随机尝试运行 make 并使用以下命令告诉它文件:
make -f make
这可行,但为什么不只是输入 make 工作?
【问题讨论】:
-
无法复制您在此处的内容。确保您的文件中没有有趣的字符(复制粘贴您在此处的内容并用制表符替换空格)。
-
你的makefile应该命名为
makefile,而不是make。 -
@PaulR Ahh 修复了它。在我的笔记中没有很好地解释它必须被称为 makefile。
-
您可以随意称呼它,但正如您所发现的,您需要
-f选项和make。使用默认名称makefile只会让生活更轻松。我会让上述评论成为这条路上任何未来旅行者的答案。
标签: makefile