1、使用$(shell pwd),
pwd
命令返回当前工作目录的绝对路径。但是如果Makefile是从其他目录调用的,这将返回执行make
命令的目录,而不是Makefile所在的目录。
2、MAKEFILE_LIST
是一个包含所有已读取Makefile文件的列表(以空格分隔),其中最后一个元素是当前正在执行的Makefile文件的路径。使用abspath
函数可以将这个路径转换为绝对路径。
# 获取当前Makefile的绝对路径和目录
makefile_path = $(abspath $(lastword $(MAKEFILE_LIST)))
makefile_dir = $(dir $(makefile_path))
# 打印Makefile的目录
all:
@echo "Makefile的目录是: $(makefile_dir)"