2010-12-14 56 views
2

在Makefile文件的代码解释...为什么* /%/ x与Makefile中的a/b/x不匹配?

PATH = a/b/x 
$(patsubst a/%/x,%,$(PATH)) # => b 
$(patsubst */%/x,%,$(PATH)) # => a/b/x 

好像这两个应该产生相同的结果,b,为*应该匹配什么。为什么不是这种情况?我如何编写一个表达式来捕获中心词,其前缀任意,而不仅仅是'a'?

+0

顺便说一句,我很想重新表达这个标题莫名其妙。建议欢迎。 – 2010-12-14 12:16:57

回答

2

使得根本没有很好的处理通配符的能力。您的$(patsubst */%/x,%,$(PATH))不起作用,因为您的$(PATH)中没有*。但你可以得到你想要的效果与这个kludge:

$(word 2, $(subst /, ,$(PATH))) 
相关问题