我有以下内容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
为什么会这样?
我有以下内容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
为什么会这样?
默认情况下,make 运行第一个目标,在您的情况下是compile
:http ://www.gnu.org/software/make/manual/html_node/How-Make-Works.html#How-Make-Works
如果您想all
成为默认目标,请先列出它。
当您刚刚执行make
第一个目标时,将默认执行。它是作为第一个依赖项保留的约定,all
即使它可以像您所做的那样在任何地方,除非您传递all
到make
. 甚至退房.PHONY
。