【发布时间】:2015-12-09 18:34:06
【问题描述】:
我想将“notdir”函数应用于我从通配符匹配中获得的文件列表。虽然 '$(notdir $(wildcard dir/*.tst))' 有效,但我没有设法首先将列表存储在一个变量(下面的 Makefile 中的'FILES')中,然后由 $(notdir ... )。直接使用变量 ('$(notdir $(FILES))') 会导致返回通配符,使用 value ('$(notdir $(value $(FILES)))') 会产生空结果。
.PHONY: show
FILES := dir/*.tst
FILES2 := dir/a.tst dir/b.tst
#NAMES := $(notdir $(FILES))
NAMES1 := $(notdir $(value $(FILES)))
NAMES2 := $(notdir $(FILES2))
NAMES3 := $(notdir $(wildcard dir/*.tst))
show:
@echo "FILES: " $(FILES)
@echo "NAMES1: " $(NAMES1)
@echo "NAMES2: " $(NAMES2)
@echo "NAMES3: " $(NAMES3)
我也尝试过 $(notdir $(eval $$(FILES))),但这会导致“缺少分隔符”错误。
我在这里缺少什么?我本以为价值会完成这项工作......
【问题讨论】: