Strip$(strip <string>)
主要功能去掉字符串 string 首尾的空格 。
findstring$(findstring <find>,<text>)
这个函数的作用是从字符串当中寻找字符串,如果找到了字符串就返回字符串 , 否则返回空 。
filter$(filter <pattern...>,<text>)
这是一个过滤函数,这个函数执行时,首先会根据空格或者tab键或者回车换行符进行分割 , 然后一一的进行filter函数的操作 。然后遍历每一个被分割出来的字符,如果不满足pattern的规则的话对应的字符就会被过滤掉 。
s = a.c abo.c s.o s.y x.o x.yss = $(filter %.c %.o, $(s))main: demo.c echo $(ss)
filter-out这个函数和filter的用法是一样的只不过,作用刚好相反 , filter是保存符合条件的字符串,filter-out是保存不符合条件的字符串 。
s = a.c abo.c s.o s.y x.o x.yss = $(filter-out %.c %.o, $(s))main: demo.c echo $(ss)
sort这个函数主要是用于帮助字符串排序的,同时还会取出分割之后相同的字符串 。
s = g a b c d e fa a a ass = $(sort $(s))main: demo.c echo $(ss)
word$(word <n>,<text>)
这个功能很简单,返回当中第个字符 。
s = g a b c d e fa a a ass = $(word 1, $(s)) # 取出第一个字符main: demo.c echo $(ss)
wordlist$(wordlist <start>,<end>,<text>)
这个也是从字符串当中取出字符,是取出第个字符一直到第个字符 。
s = g a b c d e fa a a ass = $(wordlist 1, 5, $(s))main: demo.c echo $(ss)
words统计单词的个数 。
s = 1 2 3 4 5ss = $(words $(s))main: demo.c echo $(ss)
firstword这个函数主要是用于返回第一个字符串的 。
s = 1 2 3 4 5ss = $(firstword $(s))main: demo.c echo $(ss)
文件函数dir与notdir函数dir函数主要书获取文件路径当中的目录部分,而notdir函数主要是获取文件路径当中文件名的部分
file = ./files/a.cfdir = $(dir $(file))nfdir = $(notdir $(file))main: demo.c echo $(fdir) echo $(nfdir)
suffix函数这个函数主要是用于获取文件的后缀名 。
file = ./files/a.cfdir = $(dir $(file))nfdir = $(notdir $(file))name = $(suffix $(file))main: demo.c echo $(fdir) echo $(nfdir) echo $(name)
basename这个函数用于获取文件路径当中除去后缀名的部分 。
file = ./files/a.cbase = $(basename $(file))main: demo.c echo $(base)
addsuffix这个函数主要是给文件加上后缀的 。
file = ./files/a.cbase = $(addsuffix .c, $(file))main: demo.c echo $(base)
addprefix这个函数的主要作用就是在字符串的前面加上一串字符 。
file = files/a.cbase = $(addprefix ./src/main/, $(file))main: demo.c echo $(base)
其他函数循环函数foreachforeach
函数的主要使用规则为:
$(foreach <var>,<list>,<text>)
我们直接使用一个例子来说明这个情况:
files = a.c b.c c.c d.cnew_files = $(foreach n, $(files), $(n)pp)main: demo.c echo $(new_files)
call函数call函数在makefile当中可以用于调用我们自定义的一个表达式 , 他的语法个数如下面所示:
$(call <expression>,<parm1>,<parm2>,...,<parmn>)
- 表示定义的表达式的名字 。
- 表示第n个参数,我们在当中可以使用
$(n)
进行引用 。
a=a.cb=b.cc=$(a)-------$(b)main: demo.c echo $(c)
在makefile当中使用shell函数我们在makefile的表达式当中可以使用shell的函数 。比如现在我们有一个文件叫做
test.txt
,文件的内容如下所示:a.c b.c c.c d.c
content=$(shell cat test.txt) # 将shell命令的输出内容赋给contentmain: demo.c echo $(content) # 输出content
origin函数origin这个函数主要是返回变量的定义方式,使用格式如下:$(origin <variable>) # 其中 variable 是变量名字 这里不需要使用 $ 符号去引用
error函数在makefile当中我们可以使用error函数让makefie停止执行 。当我们有需求:让在某种条件下让makefile停止编译data=https://www.huyubaike.com/biancheng/dataifeq ($(data), data)$(error"data =https://www.huyubaike.com/biancheng/= data")endifmain: main.c gcc main.c
除此之外还有个warning函数使用方法和error一样!总结在本篇文章当中主要给大家总结了一些常见的makefile的使用方法,方便大家查阅复习!
以上就是本篇文章的所有内容了,我是LeHung,我们下期再见?。。「嗑誓谌莺霞煞梦氏钅浚篽ttps://github.com/Chang-LeHung/CSCore
推荐阅读
- DophineSheduler上下游任务之间动态传参案例及易错点总结
- JS 模块化-05 ES Module & 4 大规范总结
- 打麻将技巧与方法总结(打麻将10句口诀)
- Optional 常用方法总结
- 月工作总结与计划怎么写 月工作总结与计划怎么写?
- 小学数学教师教育教学总结 小学数学教育教学心得反思总结
- 二年级数学模块的教学回顾总结
- 初三化学知识点总结 初三化学复习知识点
- 初三化学第一单元知识点总结 初三化学的元素知识点总结
- 河南中考数学考点总结 河南中考数学考点整理