0

似乎$$<在隐式规则的次要先决条件扩展中,对目标进行评估,而不是像我从手册中所期望的那样,已经分配了第一个先决条件。我错过了什么?

> cat Makefile
.SECONDEXPANSION:

foobar%: prereq% $$<1
    @echo prereqs: $^
    touch $@ 

>touch foobar01 prereq0 prereq01
>make foobar0
prereqs: prereq0 foobar01
touch foobar0

从手册中,先决条件应该是prereq0 prereq01

4

1 回答 1

1

我相信这是一个真正的错误......或什么的。见https://savannah.gnu.org/bugs/index.php?28456

这很棘手,因为当时 make 正在执行第二次扩展,它还不知道 value$<是什么。它需要通过先决条件列表,而不是一次扩展所有内容,而是逐字进行扩展以确保自动变量尽快出现。

可以,但不是微不足道的。反正。它现在显然不能正常工作。

于 2013-10-17T23:10:29.890 回答