Debugging makefile,如何引用变量的内容?

Debugging makefile,如何引用变量的内容?,debugging,syntax,makefile,gnu,Debugging,Syntax,Makefile,Gnu,例如,我有一个变量$(modules),这个变量包含一个对象列表(用空格分隔的字符串),比如“modules=obj1-obj2…”等等 模块中的每个obj也包含一个列表,比如“obj1=obj1a obj1b…”等等 现在,我想让一个变量包含所有这些最低级别的变量(例如obj1a),例如,“$(变量)=obj1a obj1b…obj2a obj2b…” 我尝试了$($(模块))。。。它显然不起作用…因此,根据您所描述的,让我们假设您有三个变量,obj1、obj2和obj3,它们保存您的“对象”

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

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

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


我尝试了$($(模块))。。。它显然不起作用…

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

下面的代码不是你想要的吗

.PHONY: test

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

all:
    echo $(MODULES)
显然,将“echo”替换为您想要的内容?

使用:

.PHONY: test

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

all:
    echo $(MODULES)

我算出了,您可以使用前面的人描述的foreach函数避免$(obj1)$(obj2)$(obj3)。我也非常感谢你。