Makefile $$<;在二次扩展中,隐式规则似乎是错误的——我遗漏了什么?

Makefile $$<;在二次扩展中,隐式规则似乎是错误的——我遗漏了什么?,makefile,gnu-make,Makefile,Gnu Make,在隐式规则的第二个先决条件扩展中,$cat生成文件 .第二次扩展: foobar%:prereq%$$touch foobar01 prereq0 prereq01 >制作foobar0 prereqs:prereq0 foobar01 触摸foobar0 根据手册,先决条件应该是prereq0 prereq01我相信这是一个真正的bug。。。或者别的什么。看 这很棘手,因为make在执行第二次扩展时,它不知道$的值是多少。实际上,我很惊讶地在手册中看到了这一点。我想,“如果这类事情起作用的话

在隐式规则的第二个先决条件扩展中,
$cat生成文件
.第二次扩展:
foobar%:prereq%$$touch foobar01 prereq0 prereq01
>制作foobar0
prereqs:prereq0 foobar01
触摸foobar0

根据手册,先决条件应该是
prereq0 prereq01

我相信这是一个真正的bug。。。或者别的什么。看


这很棘手,因为make在执行第二次扩展时,它不知道
$的值是多少。实际上,我很惊讶地在手册中看到了这一点。我想,“如果这类事情起作用的话,它可能是非法的”。
> cat Makefile
.SECONDEXPANSION:

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

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