0

我有以下内容Makefile

compile:
    echo a
run: compile
    echo b
all: run

make all有预期的效果:

$ make all
echo a
a
echo b
b

但简单地调用make只执行compile目标:

$ make
echo a
a

为什么会这样?

4

2 回答 2

2

默认情况下,make 运行第一个目标,在您的情况下是compilehttp ://www.gnu.org/software/make/manual/html_node/How-Make-Works.html#How-Make-Works

如果您想all成为默认目标,请先列出它。

于 2013-04-05T18:36:27.337 回答
2

当您刚刚执行make第一个目标时,将默认执行。它是作为第一个依赖项保留的约定,all即使它可以像您所做的那样在任何地方,除非您传递allmake. 甚至退房.PHONY

于 2013-04-05T20:40:25.990 回答