|
|
在 GNU make中文版 的第八章中有一个示例:
*****
pathsearch = $(firstword $(wildcard $(addsuffix /$(1),$(subst :, ,$(PATH)))))
LS := $(call pathsearch,ls)
变量“LS”的结果为“/bin/ls”。执行过程:函数“subst”将环境变量“PATH”转换为空格分割的搜索路径列表;“addsuffix”构造出可能的可执行程序“$(1)”(这里是“ls”)带路径的完整文件名(如:“/bin/$(1)”),之后使用函数“wildcard”匹配,最后“firstword”函数取第一个文件名。
*****
其中wildcard函数的用法是:
$(wildcard PATTERN)
函数功能:列出当前目录下所有符合模式“PATTERN”格式的文件名
我的问题是wildcard仅是在 当前目录 下搜索,这就可能会出现函数返回空,而不是示例中的/bin/ls(即在当前目录下没有相匹配的 /bin/ls,导致 $(wildcard ...)返回空,从而 LS 也为空。)。
那如何才能保证LS的结果为 /bin/ls 呢?
希望我对问题的描述足够的清晰^^ |
|