これが少し難解な場合は申し訳ありませんが、私のmakefileには、相対パスである変数$(BASE)があります。パスを1レベル上げる必要があります。したがって、「../../../ 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 に答える