makefile abspath
时间: 2023-11-05 21:00:23 浏览: 111
在 Makefile 中,abspath 函数可以将相对路径转换为绝对路径。abspath 函数的使用格式如下:
```
$(abspath names...)
```
其中,names 表示要转换为绝对路径的文件或目录名,可以使用空格分隔多个文件或目录名。
例如,假设当前的工作目录是 /home/user/project,我们要将相对路径 src/main.c 和 include/utils.h 转换为绝对路径,可以在 Makefile 中这样写:
```
SRC := $(abspath src/main.c)
INC := $(abspath include/utils.h)
all:
@echo $(SRC)
@echo $(INC)
```
执行 make 命令后,输出的结果为:
```
/home/user/project/src/main.c
/home/user/project/include/utils.h
```
相关问题
makefile中的abspath
在 Makefile 中,abspath 是一个函数,用于将相对路径转换为绝对路径。其语法如下:
```
$(abspath names...)
```
其中 names 是一个或多个文件名或目录名,用空格分隔。abspath 函数将返回这些名字的绝对路径,如果名字是相对路径,则会将其转换为相对于当前目录的绝对路径。
例如,假设当前目录是 /home/user/projects,下面的 Makefile 将打印出文件 test.txt 的绝对路径。
```
FILE = test.txt
all:
@echo $(abspath $(FILE))
```
执行 make 命令,将输出 /home/user/projects/test.txt。
makefile 如何获取当前makefile的绝对路径
在Makefile中,可以使用以下代码来获取当前Makefile的绝对路径:
```makefile
mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
```
这行代码将会把当前Makefile的绝对路径保存在变量`mkfile_path`中。你可以在后续的规则中使用这个变量来引用Makefile的路径。
阅读全文