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