我一直收到这个错误:
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 work?
答案 0 :(得分:17)
理想情况下,您的makefile应命名为makefile
,而不是make
。请注意,您可以随意调用makefile,但正如您所发现的那样,您需要-f
选项和make
来指定makefile的名称。使用默认名称makefile
只会让生活更轻松。