2010-12-14 81 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))) 
相關問題