Makefile中的通配符函数,不带'*';还是'';

Makefile中的通配符函数,不带'*';还是'';,makefile,Makefile,据我所知,Makefile中的$wildcard函数用于扩展*或?。比如说, $(wildcard *.c) 使用extension.c扩展到所有文件。 但在linux Makefile中,我看到许多通配符函数实例没有*或?。比如说 ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink) 为什么我们不能这么做 ARCH_POSTLINK := $(srctree)/arch/$(SRCARCH)/

据我所知,Makefile中的$wildcard函数用于扩展*或?。比如说,

$(wildcard *.c)  
使用extension.c扩展到所有文件。 但在linux Makefile中,我看到许多通配符函数实例没有*或?。比如说

ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink)
为什么我们不能这么做

ARCH_POSTLINK := $(srctree)/arch/$(SRCARCH)/Makefile.postlink

??我不认为$(srctree)和$(SRCARCH)在这里被扩展为多个值。

除了扩展全局字符外,
通配符可以用来确定文件是否存在

ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink)
这里
ARCH\u POSTLINK
设置为
$(srctree)/ARCH/$(SRCARCH)/Makefile.POSTLINK
当且仅当该文件存在时;否则将设置为空字符串

ARCH_POSTLINK := $(srctree)/arch/$(SRCARCH)/Makefile.postlink

这里的
ARCH\u POSTLINK
设置为
$(srctree)/ARCH/$(srcach)/Makefile。POSTLINK
无论该文件是否存在。

您确定展开时
srctree
srcach
两个变量都不包含通配符吗?