根据https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html
我不明白$之间的区别?和$ ^。该文件说$?返回比目标更新的所有先决条件的名称,而$ ^返回所有先决条件。
但是,我尝试用很多例子测试它,但没有一个工作?有人可以给我一个例子吗?
另外:什么是仅限订单的先决条件?我不明白什么只是订购'手段。这来自以下定义:
$ | : 所有仅限订单的先决条件的名称,它们之间有空格。
由于
答案 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的信息。