带冒号的 Makefile 绝对路径

Posted

技术标签:

【中文标题】带冒号的 Makefile 绝对路径【英文标题】:Makefile Absolute Path with colon 【发布时间】:2014-10-09 11:15:59 【问题描述】:

为了将相对路径转换为绝对路径,我使用了 relpath / abspath 命令。 然而,结果提供了一个没有冒号:的根目录路径。

例子:

“/c/Users/MyName/Project/SVN/ACC/PCC/HAL/code/include”

我需要c:/Users/MyName/Project/SVN/ACC/PCC/HAL/code/include,这样我的代码才能找到头文件。

我正在使用 MSYS 1.0 中的 make。

有什么方法可以得到这个结果吗?

【问题讨论】:

您能否展示一下到目前为止您尝试过的内容以及未能按预期工作的地方? "$(realpath ./../../../../../ 或 "$(abspath ./../../../../.. /) 它按预期生成路径/c/users/Myname/。但是我正在寻找一些可以为我生成的方法 c:/users/Myname 【参考方案1】:
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 可能会崩溃。

【讨论】:

以上是关于带冒号的 Makefile 绝对路径的主要内容,如果未能解决你的问题,请参考以下文章

绝对路径与相对路径解析

CMake 和绝对标题路径

markdown 带CRA的VSC绝对路径

绝对路径与相对路径

相对路径与绝对路径的含义

Web应用中相对路径与绝对路径