我正在学习 Learn C The Hard Way
,在 Ex2 Extra Credit 中,他们要求您创建一个 all: ex1
目标,它将仅使用命令构建 ex1 制作
。
这是我创建的代码:
CFLAGS=-Wall -g
all: ex1
clean:
rm -f ex1
有效。
当我从命令行运行 make
时,它会 make
生成 ex1 文件。当我运行 make clean
时,它会删除文件。
我不明白的是为什么:
all: ex1
不是:
all:
make ex1
它从哪里得到 make
命令?我猜是命令行,但为什么 make clean 运行 rm -f ex1
而不是 make rm -f ex1
并失败。这对我来说似乎不一致。有人可以解释发生了什么吗?
最佳答案
名称all
不是固定的,它只是一个约定俗成的名称。 all: target
表示如果您调用它,make
将构建完成构建所需的所有内容。
所以本质上,您可以编写 make ex1
,但是假设您有 100 个文件(ex1、ex2、ex3...),您不会想要键入 100 行,对吧?
all
通常也是 .PHONY
目标。
关于c - 我无法理解所有 : ex1 in Makefile?(艰难地学习 C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34577209/