GNU make 缺省规则与后缀规则详解
需积分: 44 2 浏览量
更新于2024-08-10
收藏 2.1MB PDF 举报
"Makefile教程-理解后缀规则与缺省规则"
在Makefile编写中,后缀规则和缺省规则是两种重要的构建规则,用于控制编译和构建过程。它们在旧版本的Makefile中尤为常见,但在现代版本中,模式规则已经逐渐替代了后缀规则,以提供更清晰的规则定义。
**10.6 缺省规则**
缺省规则是在Makefile中定义的一种默认行为,当make程序找不到特定文件的重建规则时,会使用这个规则。这通常发生在目标文件没有明确的构建指令,或者没有合适的隐含规则适用的情况下。有两种方式定义缺省规则:
- **万用规则(%::)**:使用`%::`,这意味着对所有不存在的文件,如`.c`文件,执行`touch $@`命令,创建一个空的源文件。这种方式适用于调试Makefile,关注的是规则的正确性而非源文件内容。
- **伪目标`.DEFAULT`**:通过`.DEFAULT`伪目标,可以指定当没有其他命令时执行的默认操作。例如,` .DEFAULT : touch $@`,同样会创建空文件。如果不指定命令,那么`.DEFAULT`伪目标可以定义为空命令。
**10.7 后缀规则**
后缀规则是Makefile的遗留特性,用于定义文件转换的隐含规则,现在已被模式规则所取代。后缀规则有两种形式:
- **双后缀规则**:定义一对后缀,如`.c`到`.o`的转换,匹配所有具有目标后缀的文件,并根据规则将依赖文件的后缀改变。例如,`%.o: %.c`表示将`.c`文件编译成`.o`文件。
- **单后缀规则**:仅定义一个后缀,用于转换所有具有该后缀的文件。这种规则在某些特定场景下仍然有用,但通常不推荐使用,因为模式规则更加灵活和清晰。
**模式规则与后缀规则的对比**
模式规则(如`%.o: %.c`)比后缀规则更强大,因为它们可以处理多种类型的依赖关系,而不仅仅是基于文件后缀。模式规则可以使用模式匹配,不仅限于文件后缀,还能处理文件名中的其他部分,使得规则更通用。
理解并适当运用Makefile中的后缀规则和缺省规则对于编写高效且易于维护的构建脚本至关重要。虽然现代的Makefile倾向于使用模式规则,但对后缀规则的理解仍然是兼容旧Makefile和理解Makefile工作原理的基础。
2011-10-20 上传
2020-02-26 上传
2012-09-25 上传
点击了解资源详情
点击了解资源详情
2021-04-30 上传
2009-01-05 上传
2010-08-10 上传
2009-09-21 上传
羊牮
- 粉丝: 41
- 资源: 3885
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库