我有以下内容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。