2014-10-09 2002 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可能会崩溃。