现在的位置: 首页 > 综合 > 正文

make 函数(2)–〉文件名处理函数

2016年08月25日 ⁄ 综合 ⁄ 共 1267字 ⁄ 字号 评论关闭

本章总结make函数的第二部分:文件名处理函数


1,获取目录函数:$(dir FILE_NAMES):截取FILE_NAMES中的文件路径,返回截取后的路径串

     如:$(dir /home/tmp/yejing/rb_tree.c rb_tree.c)返回 /home/tmp/yejing/ ./ 

     亦即返回最后一个斜杠之前的内容,如没有斜杠,返回./


2,获取文件名函数:$(notdir FILE_NAMES):截取FILE_NAMES中的文件名,返回截取后的文件名

    如:$(notdir
dir /home/tmp/yejing/rb_tree.c rb_tree.c)返回rb_tree.c rb_tree.c 

    亦即与dir相反,返回最后一个斜杠之后的部分,如没有斜杠,直接返回输入的字串


3,前缀获取函数:$(basename FILE_NAMES):截取FILE_NAMES的前缀,返回截取后的各文件前缀

   
如:$(basename home/tmp1.c home/tmp2.c.c home/tmp3)返回home/tmp1 home/tmp2.c home/tmp3

    需要注意的是,后缀以最后一个点(.)为准,如果没有后缀,返回原字串

    注:这里其实解释为前缀并不准确,从函数名用basename而不是prefix就可以看出来,但是中文普遍翻译为前缀,为了不引起混       淆,所以这里也称前缀


 4,前缀添加函数:$(addprefix PREFIX, FILES_NAMES):为FILES_NAMES中的每个文件添加一个PREFIX的前缀,返回添加前缀后的文件名序列

   
如:$(addprefix /home/yejing, tmp1 tmp2 tmp3)返回/home/yejing/tmp1 /home/yejing2 /home/yejing/tmp3


5,后缀截取函数:$(suffix FILE_NAMES):截取文件名序列FILE_NAMES中的文件名后缀,返回截取的后缀序列,没有返回空

   
如:$(suffix tmp1.c tmp2.cpp tmp3)返回.c .cpp


6,后缀添加函数:$(addsuffix SUFFIX,FILE_NAMES):将前缀SUFFIX添加到FILE_NAMES中的每个文件前面,返回添加后的文件名序列

    如:$(addsuffix .c, tmp1 tmp2 tmp3)返回tmp1.c tmp2.c tmp3.c


7,文件名链接函数:$(join FILE_NAMES1, FILE_NAMES2):将FILE_NAMES2中的的第一个字串链接到FILE_NAMES1的第一个字串后面,以此类推,如果个数不匹配,则多余的原样返回

    如:$(join tmp1 tmp2 tmp3, .c .cpp)返回tmp1.c tmp2.cpp tmp3


8,获取匹配模式文件名函数:$(wildcard PATTERN):返回当前目录想所有能匹配PATTERN的文件名,没有则返回空串

    如:$(wildcard *.c)返回当前目录的所有以.c结尾的文件名

抱歉!评论已关闭.