抱歉,如果这有点深奥,但在我的 makefile 中,我有一个变量 $(BASE) ,它是一个相对路径。我需要将路径提升一级。所以如果我有“../../../src”,我想要“../../src”。
有没有办法在Make中轻松做到这一点?
问问题
283 次
1 回答
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
无论如何处理这些空间是一场噩梦,因为许多其他原因。
于 2013-03-06T09:06:21.507 回答