对makefile中 $? 的理解

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

例子:

在目录下,

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

 

posted @ 2012-09-18 10:42  健哥的数据花园  阅读(362)  评论(0编辑  收藏  举报