$? 所有比目标新的依赖目标的集合。以空格分隔。

例子:

在目录下,

touch foo

touch bar

然后建立Makefile:


all: foo bar     echo $?


此时 由于目录下没有 all 文件,所以 make 的执行结果是:

foo bar

然后准备再次运行,

touch all

此时,all 比其他文件(foo bar)都新,运行 make 的执行结果是:

all is up to date


第三次运行:

touch bar

此时 新旧顺序是: bar > all > foo,运行 make 的结果是:

bar