很抱歉,如果这有点深奥,但在我的makefile中,我有一个变量$(BASE),这是一个相对路径。我需要将路径提升一级。 所以,如果我有“../../../src”,我想要“../../src” 有没有办法在Make中轻松完成这个?
答案 0 :(得分:2)
如果您想要执行的BASE
的所有值以../
开头,则可以尝试
$(patsubst ../%,%,$(BASE))
如果你想删除任意路径的第一个分量(即a / b / c - > b / c),则需要更多的工作:
space := $(empty) $(empty)
shift-list = $(wordlist 2,$(words $1),$1)
shift-path = $(subst $(space),/,$(call shift-list,$(subst /, ,$1)))
并将其用作$(call shift-path,$(BASE))
。如果您的路径有空格,这会中断,但处理make
中的路径会出于许多其他原因而成为一场噩梦。