makefile内置函数patsubst
来源:互联网 发布:复用千兆sfp端口 编辑:程序博客网 时间:2024/05/21 17:15
makefile中内置函数patsubst的使用说明:
格式:$(patsubst <pattern>,<replacement>,<text> ) 名称:模式字符串替换函数——patsubst。功能:查找<text>中的单词(单词以“空格”、“Tab”或“回车”“换行”分隔)是否符合模式<pattern>,如果匹配的话,则以<replacement>替换。 这里,<pattern>可以包括通配符“%”,表示任意长度的字串。如果<replacement>中也包含“%”,那么,<replacement>中的这个“%”将是<pattern>中的那个“%”所代表的字串。 (可以用“\”来转义,以“\%”来表示真实含义的“%”字符)返回:函数返回被替换过后的字符串。示例:$(patsubst %.c,%.o, a.c b.c)把字串“a.c b.c”符合模式[%.c]的单词替换成[%.o],返回结果是“a.o b.o”
make中有个变量替换引用
对于一个已经定义的变量,可以使用“替换引用”将其值中的后缀字符(串)使用指定的字符(字符串)替换。格式为“$(VAR:A=B)”(或者“${VAR:A=B}”),
意思是,替换变量“VAR”中所有“A”字符结尾的字为“B”结尾的字。“结尾”的含义是空格之前(变量值多个字之间使用空格分开)。而对于变量其它部分的“A”字符不进行替换。
例如:
foo := a.o b.o c.o
bar := $(foo:.o=.c)
在这个定义中,变量“bar”的值就为“a.c b.c c.c”。使用变量的替换引用将变量“foo”以空格分开的值中的所有的字的尾字符“o”替换为“c”,其他部分不变。
如果在变量“foo”中如果存在“o.o”时,那么变量“bar”的值为“a.c b.c c.c o.c”而不是“a.c b.c c.c c.c”。
使用以下3个内置函数
1、wildcard : 扩展通配符
2、notdir : 去除路径
3、patsubst :替换通配符
2、notdir : 去除路径
3、patsubst :替换通配符
建立一个测试目录,在测试目录下建立一个名为sub的子目录
$ mkdir mk
$ cd mk
$ mkdir sub
在mk下,建立a.c和b.c 2个文件,在sub目录下,建立aa.c和bb.c 2 个文件
建立一个简单的Makefile
src=$(wildcard *.c ./sub/*.c)
file=$(notdir $(src))
obj=$(patsubst %.c,%.o,$(src) )
all:
@echo $(src)
@echo $(file)
@echo $(obj)
执行结果分析:
第一行输出:
a.c b.c ./sub/aa.c ./sub/bb.c
wildcard把 指定目录 ./ 和 ./sub/ 下的所有后缀是c的文件全部展开。
第二行输出:
a.c b.c aa.c bb.c
notdir把展开的文件去除掉路径信息
第三行输出:
a.o b.o aa.o bb.o
在$(patsubst %.c,%.o,$(src) )中,patsubst把$(file)中的变量符合后缀是.c的全部替换成.o,
任何输出。
或者可以使用
obj=$(file:%.c=%.o)
效果也是一样的。
阅读全文
0 0
- makefile内置函数patsubst
- Makefile中patsubst函数使用方法
- Makefile 中的wildcard 函数和patsubst函数
- makefile 中的 wildcard 与 patsubst 函数
- makefile 中的 wildcard 与 patsubst 函数
- Makefile中的patsubst和wildcard函数
- makefile 中的 wildcard 与 patsubst 函数
- Linux中Makefile文件的patsubst函数
- makefile 中的 wildcard,foreach 与 patsubst 函数
- makefile 中的 wildcard 与 patsubst 函数
- makefile 中的 wildcard 与 patsubst 函数
- makefile 中的 wildcard 与 patsubst 函数
- makefile 中的 wildcard 与 patsubst 函数
- makefile 中的 wildcard 与 patsubst 函数
- makefile 中的 wildcard,foreach 与 patsubst 函数 .
- makefile 中的 wildcard 与 patsubst 函数
- makefile 常用函数notdir、wildcard、patsubst
- Linux-Makefile(makefile 中的 wildcard 与 patsubst 函数)
- 机器学习SVM之SMO方法α,ω和b迭代公式的推导过程
- ES6语法的新特性
- Java语言设计模式之组合模式(Composite)
- QLCDNumber设置背景色和显示数字颜色
- 【SequoiaDB教程】文档模型(JSON)使用介绍
- makefile内置函数patsubst
- Linux 图片传输功能c/c++(初版)
- C++静态变量内存分配,编译阶段,解密
- leetcode 162. Find Peak Element
- Javascript实现省市联动
- 洪水预报-降雨径流模型实践总结
- webpack--概念3--输出
- 【数据蒋堂】第20期:从SQL语法看离散性
- 1032:百鸡百钱问题