GNUmake隐含规则搜索算法解析
需积分: 44 120 浏览量
更新于2024-08-10
收藏 2.1MB PDF 举报
"Makefile编程指南-隐含规则搜索算法与MapGIS10教程概览"
在Makefile编程中,隐含规则搜索算法是一项关键功能,它帮助自动化构建过程,特别是处理那些没有明确定义命令行的规则。MapGIS10教程中的10.8章节深入探讨了这一算法。以下是对这一算法的详细解释:
1. **隐含规则搜索的目的**:
- 搜索适用于没有命令行的双冒号规则。
- 应用于没有命令行的普通规则。
- 处理那些不是任何规则直接目标,但作为其他规则依赖的文件。
- 在递归搜索过程中,找到隐含规则链中前一个规则的依赖文件。
2. **搜索过程**:
- **目标处理**:首先,如果目标是"ARCHIVE(MEMBER)"形式,算法会执行两次,第一次以整个目标名(如"ARCHIVE(MEMBER)")搜索,若失败,则以"MEMBER"作为目标再次搜索。
- **目录和文件名分离**:将目标“T”分为目录部分“D”和其余部分“N”。例如,"src/foo.o"的"D"是"src/","N"是"foo.o"。
- **匹配模式规则**:列出所有与“T”或“N”匹配的模式规则。目标中包含斜杠的规则与“T”匹配,否则与“N”匹配。
- **非万用规则过滤**:移除所有非最终万用规则,即那些可以进一步扩展的目标。
- **无命令行规则的排除**:删除所有没有命令行的规则。
3. **Makefile基础**:
- **GNUmake中文手册**提供了关于Makefile的详细指南,涵盖了基本概念、变量设定、自动规则推导、目录搜索、隐含规则等内容。
- **Makefile的构成**包括目标、依赖、命令行等元素,通过规则定义构建过程。
- **变量使用**允许用户定义和复用值,简化Makefile的编写。
- **自动规则**如后缀规则,能自动推导编译或构建步骤。
- **目录搜索**(VPATH和vpath)允许在不同目录中查找源文件和依赖。
- **隐含规则**提供了一种无需显式定义的构建方式,如编译C/C++源文件成对象文件。
4. **规则详解**:
- **规则语法**包括目标、依赖和命令的组合。
- **依赖类型**可能包括具体文件、通配符匹配和伪目标。
- **通配符**(如`*`)用于匹配一组文件,但存在限制,需要结合`wildcard`函数使用。
- **目录搜索**机制通过VPATH变量或vpath指令进行配置,影响目标文件的查找路径。
- **静态模式规则**提供了一种更灵活的规则定义方式,可以替代隐含规则,避免潜在冲突。
隐含规则搜索算法是Makefile的核心部分,它提高了构建系统的灵活性和自动化程度。通过理解这一算法,开发者能够更好地优化他们的Makefile,从而更高效地管理项目构建。在MapGIS10这样的GIS软件开发环境中,正确利用Makefile的隐含规则搜索功能,有助于自动化地理数据处理和分析任务。
2009-01-05 上传
2011-10-20 上传
2020-02-26 上传
点击了解资源详情
点击了解资源详情
2012-09-25 上传
2021-04-30 上传
点击了解资源详情
点击了解资源详情
淡墨1913
- 粉丝: 32
- 资源: 3803
最新资源
- 10天学会ASP.NET.pdf
- IBM内部PL1教材中文的
- 107条Javascript的常用语句.txt
- Visual C# 2005微软认证试题
- 一种摄像头自动白平衡的算法及硬件实现
- Linux 的引导过程.pdf
- EXTjs中文手册.pdf
- 你必须知道的.NET.pdf
- JDK5.0新特性介绍.pdf
- sed 使用手册linux unix 下常用的文本处理工具。用来处理格式化文本
- 卷积码的译码算法——维特比译码
- Oracle9i10g编程艺术
- MyEclipse 6 Java EE商业开发中文手册.pdf
- UML参考手册--基本概念
- strust2.0深入浅出
- 计算机专业毕业实习、毕业设计指导书