2014-10-09 70 views
0

要將相對路徑轉換爲絕對路徑,我使用了relpath/abspath命令。 但是,結果會傳遞一個帶有根目錄但不帶冒號:的路徑。帶冒號的Makefile絕對路徑

例子:

「/ C /用戶/ MYNAME /項目/ SVN/ACC/PCC/HAL /密碼/包括」

我需要c:/Users/MyName/Project/SVN/ACC/PCC/HAL/code/include讓我的代碼可以找到頭文件。

我正在使用來自MSYS 1.0的make。

有什麼辦法可以得到這個結果嗎?

+0

您可以顯示迄今爲止已經嘗試過的以及未按預期工作的地方嗎? – EWit 2014-10-09 11:21:22

+0

「$(realpath ./../../../../../或」$(abspath ./../../../../../)它產生的路徑爲expected/c/users/Myname /。但是我正在尋找一些可以爲我生成的方法c:/ users/Myname – flounder 2014-10-09 12:51:00

回答

0
winpath_helper=$1:/$(subst ////$1/,,$2) 
winpath=$(call winpath_helper,$(word 1,$(subst /, ,$1)),///$1) 

ppp:=/c/Users/MyName/Project/SVN/ACC/PCC/HAL/code/include 
$(info === $(call winpath,$(ppp))) 

結果:

c:/Users/MyName/Project/SVN/ACC/PCC/HAL/code/include 

這意味着該輸入是corerct格式;如果它不是MSYS上的$ realpath或$ abspath的結果,make可能會崩潰。