刪除../我有對象文件來與路徑可能看起來像這樣的:Makefile文件 - 從路徑
'../../src/foo/bar.c'
我希望他們輸出到
'build/src/foo/bar.o'
目前使用:
COBJS := $(notdir $(CFILES))
COBJS := $(patsubst %,$(BUILD)%.o,$(COBJS))
我能實現
'build/bar.o'
這是有問題的,如果任何兩個庫/項目包含相同的類名稱。
所以問題是,如何從Make中的路徑中刪除多個'../'。我嘗試了明顯而又天真的方法,但沒有結果。
更新,下面將完全匹配../../並將其替換爲其餘。除了特定於../../外,這是完美的。只需要讓它匹配任意數量的../../
COBJS := $(CFILES:../../%=%)
更新,
解決,只有三個信譽害羞張貼我自己的答案。
COBJS := $(subst ../,,$(CFILES))
出了什麼問題'COBJS:= $(SUBST ../..,建設,$(CFILES))'? – Beta 2012-03-16 05:04:39
某些文件並不總是向後兩個相對路徑。 – Halsafar 2012-03-17 05:21:37