首页 > 解决方案 > make:从依赖项中提取元素

问题描述

我有一个表单的目标,target: DEP1 DEP2其中DEP1DEP2是项目列表。说DEP1 = A B CDEP2 = D E F。我需要从中提取一些元素DEP2,即

target: $(DEP1) $(DEP2)
    # echo E from DEP2 without explicitly using $(DEP2)

有没有办法我可以做到这一点?我已经看到了$(word 2, $^)提取第二个依赖项的用法,但我不确定如何依赖项中提取元素。

谢谢。

编辑:修复了一个语法错误并试图澄清

标签: linuxmakefile

解决方案


没有办法做你所要求的。Make 将在读入 makefile 时扩展先决条件列表中的所有变量,因此在 make 甚至开始解析该行之前,任何关于哪个变量可能已包含哪些值的指示早已不复存在。

也就是说,仅仅通过查看先决条件列表,绝对无法区分以下任何一种结构:

DEP1 = A B C
DEP2 = D E F
target: $(DEP1) $(DEP2)

DEP1 = A
DEP2 = B C D E F
target: $(DEP1) $(DEP2)

target: A B C D E F

$^就自动变量等的内容而言,所有这些都完全相同。


推荐阅读