关于makefile中自动变量的问题

时间:2016-07-26 04:08:30

标签: makefile

根据https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html

我不明白$之间的区别?和$ ^。该文件说$?返回比目标更新的所有先决条件的名称,而$ ^返回所有先决条件。

但是,我尝试用很多例子测试它,但没有一个工作?有人可以给我一个例子吗?

另外:什么是仅限订单的先决条件?我不明白什么只是订购'手段。这来自以下定义:

$ | : 所有仅限订单的先决条件的名称,它们之间有空格。

由于

1 个答案:

答案 0 :(得分:0)

如果你向我们展示一个你尝试过但没有成功的例子,我们可以提供更多帮助。这是一个简单的例子:

$ cat Makefile
all: foo bar
        @echo '$$? = $?'
        @echo '$$^ = $^'

$ touch foo; sleep 1; touch all; sleep 1; touch bar

$ make
$? = bar
$^ = foo bar

您可以在GNU制作手册中找到有关order-only prerequisites的信息。