必威体育Betway必威体育官网
当前位置:首页 > IT技术

patsubst

时间:2019-06-23 21:42:12来源:IT技术作者:seo实验室小编阅读:67次「手机版」
 

patsubst

函数名称:加前缀函数—addprefix。

函数功能:为“NAMES…”中的每一个文件名添加前缀“PREFIX”。参数“NAMES…”是空格分割的文件名序列,将“SUFFIX”添加到此序列的每一个文件名之前。

返回值:以单空格分割的添加了前缀“PREFIX”的文件名序列。

函数说明:

示例:

$(addprefix src/,foo bar)

返回值为“src/foo src/bar”。

1、wildcard : 扩展通配符

2、notdir : 去除路径

3、patsubst :替换通配符

例子:

建立一个测试目录,在测试目录下建立一个名为sub的子目录

$ mkdir test

$ cd test

$ mkdir sub

在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件

建立一个简单的makefile

src=$(wildcard *.c ./sub/*.c)

dir=$(notdir $(src))

obj=$(patsubst %.c,%.o,$(dir) )

all:

@echo $(src)

@echo $(dir)

@echo $(obj)

@echo "end"

执行结果分析:

第一行输出:

a.c b.c ./sub/sa.c ./sub/sb.c

wildcard把 指定目录 ./ 和 ./sub/ 下的所有后缀是c的文件全部展开。

第二行输出:

a.c b.c sa.c sb.c

notdir把展开的文件去除掉路径信息

第三行输出:

a.o b.o sa.o sb.o

在$(patsubst %.c,%.o,$(dir) )中,patsubst把$(dir)中的变量符合后缀是.c的全部替换成.o,

任何输出。

或者可以使用

obj=$(dir:%.c=%.o)

效果也是一样的。

这里用到makefile里的替换引用规则,即用您指定的变量替换另一个变量。

它的标准格式是

$(var:a=b) 或 ${var:a=b}

它的含义是把变量var中的每一个值结尾用b替换掉a


见:learn/prog/makefile/test/

相关阅读

makefile中的patsubst

1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录

分享到:

栏目导航

推荐阅读

热门阅读