在Makefile中,可以使用shell命令来获取从一个绝对路径到另一个绝对路径的相对路径。具体方法如下:
cd
命令切换到第一个绝对路径目录。pwd
命令获取当前目录的绝对路径。cd
命令切换到第二个绝对路径目录。pwd
命令获取当前目录的绝对路径。realpath
命令获取两个绝对路径之间的相对路径。以下是一个示例Makefile规则,用于获取从/home/user/project
到/home/user/project/src
的相对路径:
relative_path := $(shell cd /home/user/project && pwd)
relative_path := $(shell cd /home/user/project/src && pwd)
relative_path := $(shell realpath --relative-to=$(relative_path) $(shell pwd))
all:
@echo "Relative path: $(relative_path)"
在这个示例中,我们首先使用cd
和pwd
命令获取两个绝对路径的绝对路径,然后使用realpath
命令获取相对路径。最后,我们在all
目标中输出相对路径。
需要注意的是,这个方法依赖于realpath
命令,该命令在大多数Linux发行版中都可用,但在macOS中可能不可用。在macOS中,可以使用brew install coreutils
安装realpath
命令。
领取专属 10元无门槛券
手把手带您无忧上云