make:***没有规则让目标"全部".停止

Dea*_*ean 20 makefile

我一直收到这个错误:

make: *** No rule to make target `all'.  Stop.
Run Code Online (Sandbox Code Playgroud)

即使我的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
Run Code Online (Sandbox Code Playgroud)

是的,目标下面应该有一个标签空间,并且在我的make文件中.

我可以得到它,如果我尝试像main.o,inputText.o和outputText.o的目标之一,但不能完成构建或全部工作.

编辑:我只是随机尝试运行make并使用以下命令告诉它文件:

make -f make
Run Code Online (Sandbox Code Playgroud)

这有效,但为什么不只是键入make work?

Pau*_*l R 17

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

  • 此外,它不应该以大写字母命名。 (2认同)