当在父目录,执行了make -C 到子目录makefile,如果携带的参数是相对路径,会导致在子目录makefile,路径是基于子目录的相对目录,会导致执行错误。这个时候可以把相对路径转换成绝对路径。
realpath
函数获取文件名序列中存在的文件和目录的真实路径,会判断文件和目录是否存在,如果不存在,则返回空。
abspath
函数获取文件名序列中存在的文件和目录的真实路径,函数不会检查文件或者目录是否存在。
realpath abspath 能跨过软链接,获取文件的真实路径。
例如:
BASE:= $(realpath ../../../)
BASE包含的就是上层目录的绝对路径。