GNU make隐含规则搜索算法详解
需积分: 34 136 浏览量
更新于2024-08-10
收藏 1.45MB PDF 举报
"隐含规则搜索算法-stc8h 系列单片机技术参考手册"
在 GNU Make 中,隐含规则搜索算法是一个关键概念,它用于寻找如何构建那些没有直接命令行定义的目标文件。该算法适用于多种情况,包括没有命令行的双冒号规则、普通规则,以及那些依赖于其他规则的目标文件。在递归搜索过程中,隐含规则链中前一个规则的依赖文件也会被考虑。重要的是要注意,后缀规则在读取 Makefile 时已经被转换为模式规则,因此在搜索过程中不直接涉及。
搜索算法的步骤如下:
1. **目标分解**:首先,将目标文件名(如 "src/foo.o")分为目录部分 "src/" 和非目录部分 "foo.o",分别记为 "D" 和 "N"。
2. **匹配模式规则**:接着,找出所有与 "T" 或 "N" 匹配的模式规则。如果规则的目标包含斜杠,则认为与 "T" 匹配,否则匹配 "N"。
3. **删除非最终万用规则**:如果模式规则列表中有一个非万用规则,那么删除列表中所有非最终的万用规则。
4. **移除无命令行的规则**:接下来,移除所有没有命令行的规则,因为这些规则无法用于实际构建操作。
5. **应用规则**:对剩下的模式规则列表进行处理,每个规则可能指示了如何创建目标。
这个过程在处理 "ARCHIVE(MEMBER)" 形式的特殊目标时会执行两次,首次以整个目标名搜索,如果失败,则使用 "member" 进行二次搜索。
GNU Make 通过 Makefile 规则来管理项目构建过程。Makefile 包含了一系列规则,定义了目标及其依赖,并指明了构建目标所需的命令。Makefile 可以包含变量定义,用于简化重复的文本。此外,Makefile 支持自动推导规则,即根据目标文件的扩展名推导出构建过程。
在 Makefile 的规则部分,可以定义各种类型的依赖,如文件名通配符(如 "*.c"),这允许一次规则匹配多个文件。目录搜索功能(VPATH 和 vpath 关键字)允许 make 在多个目录中查找依赖文件。Makefile 还支持伪目标(如 ".PHONY")和静态模式规则,以更灵活地控制构建流程。
隐含规则搜索算法是 GNU Make 自动构建过程的核心,它使得开发者无需为每个文件编写详细的构建指令,而是利用预定义的规则和模式进行构建,极大地提高了工程管理的效率。理解并掌握这一算法有助于编写更高效、更简洁的 Makefile 文件。
105 浏览量
110 浏览量
2023-03-25 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-02-09 上传
2021-12-10 上传
马运良
- 粉丝: 34
- 资源: 3897
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能