我想将'notdir'函数应用于我从通配符匹配中获取的文件列表。虽然'$(notdir $(通配符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))),但这会导致“缺少分隔符”错误。
我在这里缺少什么?我原本以为这个价值会起作用......
答案 0 :(得分:2)
尝试以下方法:
FILES := $(wildcard dir/*.tst)
NAMES := $(notdir ${FILES})