Makefile之文件名操作函数
取目录函数-dir
$(dir <names...> ) 名称:取目录函数 dir 功能:从文件名序列<names>中取出目录部分。目录部分是指最后一个反斜杠(“/”)之前的部分。如果没有反斜杠,那么返回“./”。 返回:返回文件名序列<names>的目录部分。 示例: @echo $(dir /home/a.c ./bb.c ../c.c d.c) ==> /home/ ./ ../ ./
取文件名称函数-notdir
$(nodir <names>) 名称:取文件函数 notdir,包括后缀,去除文件夹路径; 功能:从文件名序列<names>中取出非目录部分。非目录部分是指最后一个反斜杠(“/”)之后的部分 返回:返回文件名序列<names>的非目录部分 示例: @echo $(notdir /home/a.c ./bb.c ../c.c d.c) ==> a.c bb.c c.c d.c
取后缀函数-suffix
$(suffix <names...> ) 名称:取后缀函数 suffix 功能:从文件名序列<names>中取出各个文件名的后缀。 返回:返回文件名序列<names>的后缀序列,如果文件没有后缀,则返回空字串。 示例: @echo $(suffix /home/a.c ./b.o ../c.a d) ==> .c .o .a
取前缀函数-basename
$(basename <names...> ) 名称:取前缀函数——basename。包括路径; 功能:从文件名序列<names>中取出各个文件名的前缀部分。 返回:返回文件名序列<names>的前缀序列,如果文件没有前缀,则返回空字串。 示例: @echo $(basename /home/a.c ./b.o ../c.a /home/.d .e) ==> /home/a ./b ../c /home/
加后缀函数-addsuffix
$(addsuffix <suffix>,<names...> ) 名称:加后缀函数 addsuffix 功能:把后缀<suffix>加到<names>中的每个单词后面。 返回:返回加过后缀的文件名序列。 示例: @echo $(addsuffix .c,/home/a b ./c.o ../d.c) ==> /home/a.c b.c ./c.o.c ../d.c.c
加前缀函数-addprefix
$(addprefix <prefix>,<names...> ) 名称:加前缀函数 addprefix。 功能:把前缀<prefix>加到<names>中的每个单词后面。 返回:返回加过前缀的文件名序列。 示例: @echo $(addprefix test_,/home/a.c b.c ./d.c) ==> test_/home/a.c test_b.c test_./d.c
连接函数-join
$(join <list1>,<list2> ) 名称:连接函数 join 功能:把<list2>中的单词对应地加到<list1>的单词后面。如果<list1>的单词个数要比<list2>的多,那么,<list1>中的多出来的单词将保持原样。如果<list2>的单词个数要比<list1>多,那么,<list2>多出来的单词将被复制到<list2>中。对应位置的叠加,多余的原样输出; 返回:返回连接过后的字符串。 示例: @echo $(join a b c d,1 2 3 4) @echo $(join a b c d,1 2 3 4 5) @echo $(join a b c d e,1 2 3 4) a1 b2 c3 d4 a1 b2 c3 d4 5 a1 b2 c3 d4 e