我可以只获得 GNU make 中的第二个先决条件吗? [重复]

问题描述 投票:0回答:2

我正在使用GNU make,并且我正在使用自动变量,例如

$<
$^
等。我知道
$<
只是第一个先决条件,
$^
是所有先决条件。 有没有办法只获得第二个先决条件?

makefile gnu-make
2个回答
98
投票

假设您的先决条件是常规代币,

echo $(word 2,$^)

我经常发现自己给第一个参数一个特殊的位置,并使用

访问其余的先决条件
echo $(filter-out $<,$^)

*尽管有时使用上面的解决方案你可能会发现重复的元素。


0
投票

我能想到的最好的办法,我觉得有点黑客,就是使用

echo $^ | cut -f2 -d' '
,à la:

output.txt: a.txt b.txt
    cat $< | ./something `echo $^ | cut -f2 -d' '` > $@

我很想听到比这更好的答案。 :)

© www.soinside.com 2019 - 2024. All rights reserved.