0

例如,我有一个变量 $(modules),这个变量包含一个对象列表(用空格分隔的字符串),例如“Modules = obj1 obj2...”等等。

模块中的每个 obj 还包含一个列表,比如“obj1 = obj1a obj1b ...”等等。

现在,我想创建一个变量来包含所有这些最低级别的变量(例如 obj1a),例如,“$(variable) = obj1a obj1b...obj2a obj2b...”

我试过 $($(modules))... 显然没有用...

4

2 回答 2

0

使用foreach功能

MODULES := foo bar baz

foo := a b c
bar := i j k
baz := x y z

FLAT_MODULES := $(foreach m,$(MODULES),$($m))
# FLAT_MODULES is now 'a b c i j k x y z'
于 2012-05-29T20:56:19.480 回答
0

因此,根据您的描述,假设您有三个变量 obj1、obj2 和 obj3 来保存您的“对象”名称。然后,你需要一个变量,比如 MODULES,来保存这三个变量的内容。

像下面的代码不会做你想要的吗?

.PHONY: test

MODULES=$(obj1) $(obj2) $(obj3)
obj1=foo1 bar1
obj2=foo2 bar2
obj3=foo3 bar3

all:
    echo $(MODULES)

显然将“回声”替换为您想要的任何内容?

于 2012-05-29T20:46:50.903 回答