basename
- 名称:取前缀函数——basename。
- 语法:$(basename <names...>)
- 功能:从文件名序列 <names> 中取出各个文件名的前缀部分。
- 返回:返回文件名序列 <names> 的前缀序列,如果文件没有前缀,则返回空字串。
- 示例:
SRC := src/main.c src/hello.c
OBJ := $(basename $(SRC))
all:
@echo "$(OBJ)"
执行结果:
src/main src/hello
可以看到,将后缀.c去掉了
suffix
- 名称:取後缀函数——suffix
- 语法:$(suffix <names...>)
- 功能:从文件名序列 <names> 中取出各个文件名的后缀。
- 返回:返回文件名序列 <names> 的后缀序列,如果文件没有后缀,则返回空字串。
- 示例:
SRC := src/main.c src/hello.c
OBJ := $(suffix $(SRC))
all:
@echo "$(OBJ)"
执行结果:
.c .c
只剩下后缀.c
addsuffix
- 名称:加后缀函数——addsuffix。
- 语法:$(addsuffix <suffix>,<names...>)
- 功能:把后缀 <suffix> 加到 <names> 中的每个单词后面。
- 返回:返回加过后缀的文件名序列。
- 示例:
SRC := src/main src/hello
OBJ := $(addsuffix ".c", $(SRC))
all:
@echo "$(OBJ)
执行结果:
src/main.c src/hello.c
在main和hello的后面加上了.c
addprefix
- 名称:加前缀函数——addprefix。
- 语法:$(addprefix <prefix>,<names...>)
- 功能:把前缀 <prefix> 加到 <names> 中的每个单词后面。
- 返回:返回加过前缀的文件名序列。
- 示例:
SRC := src/main src/hello
OBJ := $(addprefix "pre.", $(SRC))
all:
@echo "$(OBJ)"
执行结果:
pre.src/main pre.src/hello
在前面加上了pre.