【问题标题】:make: *** No rule to make target `all'. Stopmake: *** 没有将目标设为“全部”的规则。停止
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 另外它不应该用大写字母命名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
  • 2020-01-07
  • 1970-01-01
  • 2019-09-27
  • 2016-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多