【makefile函数】makefile 常用函数汇总

文章详细介绍了Makefile中的各种函数,包括名称处理函数如wildcard、dir、notdir等,字符串替换与分析函数如subst、patsubst,以及控制函数如info、warning、error。这些函数在构建自动化过程中的文件管理和信息输出方面起着关键作用。

makefile 函数格式:

# 基本格式: $(函数名, 参数列表...)
# 形参列表:不同参数之间使用逗号隔开
$(<function>, <argument1>, <argument2> ...)

参考文章:Makefile函数 - 腾讯云开发者社区-腾讯云


目录

一、名称处理函数

1、wildcard —— 获取指定格式的文件列表

2、dir —— 获取文件所在目录

3、notdir —— 获取文件路径非目录部分

4、suffix —— 获取文件后缀

5、basename —— 去除文件后缀

二、字符串替换与分析函数

1、subst —— 直接替换字符

2、patsubst —— 按格式替换字符

3、$(C_SOURCES:.c=.o) —— 按指定格式替换后缀

4、strip —— 去掉开头和结尾的空白字符

5、findstring —— 在某个字串中查找指定字符串

6、filter —— 保留指定格式的字符串

7、filter-out —— 去除指定格式的字符串

8、addprefix —— 为字符串添加前缀

三、控制函数(信息打印函数)

1、info —— 打印提示信息

2、warning —— 打印报警信息

3、errror —— 打印错误信息

四、其他函数

1、foreach —— 循环函数

2、call —— 调用函数

3、shell —— 执行命令行命令

4、eval 


一、名称处理函数

1、wildcard —— 获取指定格式的文件列表

原型(不同格式之间使用空格隔开

$(wildcard <pattern...>)

示例:获取当前目录下所有的 .cpp 文件和 test目录下所有的 .cpp 文件

$(wildcard *.cpp test/*.cpp)

2、dir —— 获取文件所在目录

获取文件所在目录,本质是获取最后一个反斜杠 '/' 以前的内容。如果没有反斜杠 '/' ,返回 ./

$(dir <names...>)    # 不同文件名之间以空格隔开

示例:

$(dir src/foo.c sum.txt)

3、notdir —— 获取文件路径非目录部分

获取一个文件路径的非目录部分,也可以理解为获取文件名(含后缀),本质是获取最后一个反斜杠 '/' 之后的内容。如果没有反斜杠,直接返回本身。

$(notdir <names...>)

示例:

$(notdir src/foo.c sum.txt)

4、suffix —— 获取文件后缀

取出文件名的后缀,如果文件无后缀,返回空字符。注意其本质并非是单纯获取到最后一个点符号 '.' 之后的内容。

$(suffix <names…>)

示例:

$(suffix src/foo.c src-1.0/bar.c hacks)

5、basename —— 去除文件后缀

$(basename  <names...>)

示例:

$(basename src/foo.c src-1.0/bar.c hacks)

二、字符串替换与分析函数

1、subst —— 直接替换字符

subst 直接将 <text> 中的字符 <src> 替换为字符 <dst>。

$(subst <src>,<dst>,<text>)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值