我有这个表达式中的一些文件:
ui_files := $(wildcard $(SUBDIRS:%=%/*.ui)).
现在我需要相同文件路径的列表,但文件名中带有“ui_”前缀,另一个扩展名为(.h)。我怎么能这样做?
答案 0 :(得分:1)
您可以使用foreach
遍历列表并转换每个元素:
h_files := $(foreach ui,$(ui_files),$(dir $(ui))ui_$(notdir $(ui:.ui=.h)))
或者,首先转换整个列表,然后使用join
:
h_files := $(join $(dir $(ui_files)),$(patsubst %.ui,ui_%.h,$(notdir $(ui_files))))
两种解决方案都使用dir
and notdir
函数。