
Makefile函数详解:灵活构建你的工程
下载需积分: 27 | 65KB |
更新于2024-09-09
| 159 浏览量 | 举报
收藏
"Makefile中常用的函数包括 subst 和 patsubst,它们是进行字符串处理的重要工具。 subst 函数用于将指定的子字符串在给定的字符串中替换为另一个子字符串,而 patsubst 函数则是一个模式匹配的替换函数,能够根据模式对字符串列表中的单词进行替换。下面详细介绍这两个函数。
subst 函数:
subst 函数的语法是 `$(subst from,to,text)`。`from` 是要被替换的子字符串,`to` 是替换后的字符串,而 `text` 是包含 `from` 的原始字符串。函数会遍历 `text` 中的所有 `from` 子串,并将其替换为 `to`。例如,`$(subst space,comma,abc def ghi)` 将把空格替换为逗号,结果变为 "abc,def,ghi"。
patsubst 函数:
patsubst 函数的语法是 `$(patsubst pattern,replacement,list)`。`pattern` 是一个模式,`replacement` 是替换字符串,`list` 是一个单词列表。`pattern` 中可以包含通配符 `%`,它匹配任何非空字符序列。当 `list` 中的单词匹配 `pattern` 时,`%` 被单词的匹配部分替换,然后整个单词被替换为 `replacement`。例如,`$(patsubst %.c,%.o,foo.c bar.c baz.c)` 将把所有 ".c" 后缀的单词替换为 ".o",结果为 "foo.o bar.o baz.o"。
除此之外,Makefile 还提供了其他有用的函数,如 `findstring`(查找字符串是否存在于列表中),`filter` 和 `filter-out`(筛选列表中的单词),`join`(合并两个列表),`word` 和 `words`(提取列表中的单词或计数),以及 `firstword`(获取列表的第一个单词)等。
例如:
- `$(findstring target, list)` 检查 `target` 是否在 `list` 中,如果存在,返回 `target`,否则为空。
- `$(filter pattern, list)` 返回 `list` 中匹配 `pattern` 的所有单词。
- `$(filter-out pattern, list)` 返回 `list` 中不匹配 `pattern` 的所有单词。
- `$(join list1, list2)` 将 `list1` 和 `list2` 合并成一个新的列表,相邻元素间用空格分隔。
- `$(word N, list)` 返回 `list` 的第 N 个单词(从1开始计数)。
- `$(words list)` 返回 `list` 中的单词总数。
- `$(firstword list)` 只返回 `list` 的第一个单词。
这些函数在编写复杂的 Makefile 规则和自动化构建脚本时非常有用,它们使得 Makefile 更具灵活性和可读性,可以根据不同的条件和模式执行不同的构建操作。熟练掌握这些函数,能够帮助你编写出更加高效和定制化的构建系统。
相关推荐










qingfeng623
- 粉丝: 20
最新资源
- 电影片头下载效果源码使用指南
- 选课管理系统源码程序设计与文档资料
- 南极星日文输入法:中文环境下输入日语的解决方案
- 掌握C# .NET异步编程技巧,提升下载效率
- EVC4.0实现的嵌入式画图板应用
- Java结合Lucene打造高效公交搜索系统
- 快速加密文件夹 防止DOS模式破解
- 微软开源Silverlight视频播放器:高速流畅体验
- 搭建SOCKET客户端程序的简易指南
- 基于Kasia框架的权限管理系统开发实践
- 实现多线程Socket通信服务端的代码教程
- 《精通Matlab6.5》教程,张志勇带你深入理解
- C++开发的文件合并小程序及VC++环境应用
- 北大操作系统实习lab1入门指南
- NHibernate实现的Asp.net博客源码下载
- VS2008环境下TaskVision源代码的使用指南
- VC++与MFC游戏开发教程:从概念到图形特效
- 掌握.NET技术:后台函数异步调用指南
- 掌握SSH框架集成:Spring管理Struts与Hibernate
- 掌握DXperience汉化源代码的自由定制方法
- 自定义对话框类实现控件动态调整功能
- Windows API函数学习与参考大全
- MTK多国语言制作流程与点阵字库生成器应用
- 实现多虚拟桌面及切换快捷键技巧