Makefile中的隐含规则搜索算法解析
需积分: 50 201 浏览量
更新于2024-08-10
收藏 964KB PDF 举报
"隐含规则搜索算法-算法引论:一种创造性方法---高清版"
本文主要讲解了在Makefile中隐含规则搜索算法的实现原理,这是构建自动化过程的关键部分。Makefile是由一系列规则组成的,这些规则定义了如何根据依赖关系来构建目标文件。隐含规则是Makefile中的一种特殊规则,它们无需显式声明,而是由系统预定义或通过模式匹配推导得出。
1. 隐含规则搜索算法步骤:
- 首先,将目标文件T拆分为目录D和名称N。
- 然后,创建匹配T或N的所有模式规则列表。
- 如果列表中有匹配所有文件的通用模式(如"%"),则移除其他模式。
- 接着,移除没有命令的规则。
- 对于列表中的第一个模式规则:
- 确定“茎”S,它是T或N与模式中"%"匹配的部分。
- 计算依赖文件,将依赖文件中的"%"替换为“茎”S。如果目标模式不含斜杠,则在第一个依赖文件前添加目录D。
- 检查所有依赖文件是否存在或“理当存在”。如果所有依赖都满足条件,采用该规则并结束搜索。
- 如果没有找到匹配规则,进一步检查列表中的下一个模式规则:
- 如果是终止规则,忽略并尝试下一个。
- 计算依赖文件并检查它们的存在状态。
- 对于缺失的依赖,递归调用搜索算法,看能否通过隐含规则找到。
作者陈皓在《跟我一起写Makefile》中,详细介绍了Makefile的各个方面,包括程序的编译和链接、Makefile的规则、变量使用、自动推导、不同风格的Makefile、清除目标文件的规则以及Makefile的结构、工作方式等。书中还深入讨论了书写规则的语法、通配符的使用、文件搜索、伪目标、多目标、静态模式、自动生成依赖性、命令的书写方式、变量的使用、条件判断和函数的应用等,为读者提供了全面的Makefile编写指南。
通过理解和掌握这些内容,开发者可以更有效地编写Makefile,提高自动化构建的效率和可维护性。在实际开发中,Makefile的正确使用能够极大地方便项目管理和持续集成,使得代码构建和部署过程更加自动化和规范化。
2656 浏览量
2018-08-20 上传
161 浏览量
177 浏览量
2012-12-01 上传
168 浏览量
龚伟(William)
- 粉丝: 32
- 资源: 3925
最新资源
- AA4MM开源软件:多建模与模拟耦合工具介绍
- Swagger实时生成器的探索与应用
- Swagger UI:Trunkit API 文档生成与交互指南
- 粉红色留言表单网页模板,简洁美观的HTML模板下载
- OWIN中间件集成BioID OAuth 2.0客户端指南
- 响应式黑色博客CSS模板及前端源码介绍
- Eclipse下使用AVR Dragon调试Arduino Uno ATmega328P项目
- UrlPerf-开源:简明性能测试器
- ConEmuPack 190623:Windows下的Linux Terminator式分屏工具
- 安卓系统工具:易语言开发的卸载预装软件工具更新
- Node.js 示例库:概念证明、测试与演示
- Wi-Fi红外发射器:NodeMCU版Alexa控制与实时反馈
- 易语言实现高效大文件字符串替换方法
- MATLAB光学仿真分析:波的干涉现象深入研究
- stdError中间件:简化服务器错误处理的工具
- Ruby环境下的Dynamiq客户端使用指南