Variables 基于其他变量生成新变量
我是Makefiles新手,对Makefiles中的变量有疑问 比如说,我有Variables 基于其他变量生成新变量,variables,makefile,Variables,Makefile,我是Makefiles新手,对Makefiles中的变量有疑问 比如说,我有 dirs := $(shell PERL5OPT="" get-list.pl) 在哪里,, get-list.pl say返回一个bcd 现在我想做一些新的变量dirs_a,dirs_b,dirs_c等等 我目前的做法是: dirs := $(shell PERL5OPT="" get-list.pl) dirs_$(var) := $(shell PERL%OPT="" some-other-perl-file
dirs := $(shell PERL5OPT="" get-list.pl)
在哪里,,
get-list.pl say返回一个bcd
现在我想做一些新的变量dirs_a,dirs_b,dirs_c等等
我目前的做法是:
dirs := $(shell PERL5OPT="" get-list.pl)
dirs_$(var) := $(shell PERL%OPT="" some-other-perl-file.pl $(var))
define new-var
$(foreach var,$(dirs),$(dirs_$(var)))
endef
final-target:
$(new-var)
这似乎不起作用,并且没有向some-other-perl-file.pl传递任何参数。有人能指出我做错了什么吗
_dirs := $(shell PERL5OPT="" get-list.pl)
dirs=$(_dirs:%=dir_%)
这应该可以解决它
它将使:
a、b、c、d
到
目录a目录b目录c目录d
那么您想创建一个包含所有目录的变量,还是每个目录创建一个变量?我想每个目录创建一个变量。基本上我需要每个目录1个变量,所以我创建了不同的变量,因为我不确定我们可以在Makefile中使用类似数组的东西,而不是不同的变量。我不确定我是否得到了正确的结果,但我想创建新的变量dirs_a,dirs_b等,它们的值应该由some-other-perl-file.pl.dirs返回=$(_-dirs:%=dir_uu%)中有一个输入错误。它应该是:dirs=$(_-dirs:%=dirs_u%)这行的基本功能是,它在_-dirs中迭代每个元素,并用规则%->dirs_u%转换该元素,其中%是之前的元素。因此“a”将变成“dirs_ua”。好的,谢谢你的澄清,但这不是我想要的。