make:***没有规则让目标“全部”。停止

时间:2012-03-27 08:54:16

标签: makefile

我一直收到这个错误:

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?

1 个答案:

答案 0 :(得分:17)

理想情况下,您的makefile应命名为makefile,而不是make。请注意,您可以随意调用makefile,但正如您所发现的那样,您需要-f选项和make来指定makefile的名称。使用默认名称makefile只会让生活更轻松。