首页 > TAG信息列表 > patsubst
Makefile 常用函数使用样例
该随笔不包含详细介绍,只包含使用样例,请读者自行领悟。 搜索目录中的文件 wildcard 文件结构 src |-- main.c |-- foo.c Makefile SRCS := $(wildcard src/*.c) 结果 src/foo.c src/main.c 替换字符串 patsubst 语法 patsubst 源模式, 目标模式, 字符串列表(空格隔开) Mmakefile中的patsubst、notdir、wildcard介绍以及用法
1.1 patsubst:模式替换函数 格式:格式:$(patsubst pattern, replacement, text) 功能:查找text中的单词(单词以“空格”、“Tab”或“回车”“换行”分隔)是否符合模式pattern,如果匹配的话,则以replacement替换。这里,pattern可以包括通配符“%”,表示任意长度的字串。如果replacemenMakefile中wildcard的介绍
Makefile中wildcard的介绍 在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的[笔记]makefile编写
makefile的隐含规则默认处理第一个目标 函数:wildcard可以进行文本匹配 patsubst内容替换 变量: $@代表目标 $^ 代表全部依赖 $< 第一个依赖 $? 第一个变化的依赖 @在规则前代表不输出给条规则指令 -在规则前代表该规则报错仍继续执行 实例:Android Makefile中wildcard、notdir、patsubst函数的用法
Makefile 里的函数跟变量的使用方法很相似——用一个$符号跟左括号,函数名,空格后跟一列由逗号分隔的参数,最后用右括号回括。 在GNU Make里有一个叫 'wildcard' 的函数,它有一个参数,功能是展开成一列所有符合由其参数描述的文件名,文件间以空格间隔。你可以像下面所示使用这个命令Makefile文件试错
1成功: src = $(wildcard ./*cpp)obj = $(patsubst %.cpp,%.o ,$(src))target = test$(target) : $(obj) g++ $(obj) -o $(target) -I/usr/include/mysql -L/usr/lib/mysql/ -lmysqlclient %.o: %.cpp g++ -c $< -o $@ -I/usr/include/mysql -L/usr/lib/mymakefile学习(2)
新建目录如下: ├─include│ integrate.h│ └─src │ integrate.c │ main.c │ makefile │ └─obj obj用于存放object文件。 makefile如下: IDIR = ../includeCC = gccCFLAGS = -I$(IDIR)ODIR = objLDIR = ../libLIBS = -lm_DEPS = integramakefile中的patsubst函数有何作用?
答:这是个模式替换函数,格式为: $(patsubst <pattern>,<replacement>,<text>) 查找text中的单词,如果匹配pattern,那么就用replacement的内容替换 举例: $(patsubst %.c,%.o,jello1.c jello2.c) 那么将会替换成jello1.o jello2.o