GNU Make中文手册:编写与管理编译规则
需积分: 9 191 浏览量
更新于2024-09-28
收藏 1.29MB PDF 举报
"Make中文详解手册"
本书是GNUmake的中文翻译版,由徐海兵在2004年9月11日翻译完成,详细解释了如何编写和使用Makefile来管理程序的编译规则。Make是自动化构建工具,通过读取Makefile,根据其中的规则来决定哪些文件需要更新,并执行相应的命令。
第一章:概述
1.1 Make之前的基本知识
- 概述:讲解了在使用Make之前需要了解的基础知识。
- 准备知识:包括对编译、链接等基本概念的理解。
1.2 GNUmake介绍
- Makefile简介:介绍了Makefile的结构和作用,它是Make工具的核心。
- Makefile规则:说明了规则是如何定义目标文件依赖于其他文件并指明构建过程的。
- 简单示例:提供了基础的Makefile编写实例。
- make如何工作:解释了make工具的工作原理,包括目标的检查和更新策略。
- 指定变量:展示了如何在Makefile中定义和使用变量,以提高代码复用性。
- 自动推导规则:说明了make如何自动推断某些类型的依赖关系。
- 另类风格的makefile:讨论了非标准格式的Makefile编写方式。
- 清除工作目录过程文件:介绍了如何设置清理命令以删除生成的临时文件。
第二章:Makefile总述
2.1 Makefile概述
- 内容:详细解释了Makefile可以包含的目标、依赖、命令和其他指令。
- 文件命名:讲述了Makefile的默认命名规则以及如何指定其他名字。
- 包含其他makefile:演示了如何在一个Makefile中引用另一个Makefile。
- 变量MAKEFILES:这个变量可以用来指定额外的Makefile路径。
- 变量MAKEFILE_LIST:包含了当前被处理的所有Makefile的列表。
- 其他特殊变量:介绍了一些Make预定义的特殊变量及其用途。
- makefile文件的重建:如何指示make重建Makefile自身。
- 重载另一个makefile:如何切换到不同的Makefile进行处理。
- make解析makefile的过程:解释了make在解析Makefile时的步骤,包括变量赋值、条件语句和规则定义。
第三章:Makefile的规则
3.1 规则示例:展示了规则的实际应用。
3.2 规则语法:详细描述了规则的语法结构。
3.3 依赖的类型:解释了直接依赖和间接依赖的概念。
3.4 文件名使用通配符:如何使用*和?等通配符匹配多个文件。
3.5 目录搜寻:介绍了如何让make在多个目录中查找依赖文件。
- 一般搜索(变量VPATH)
- 选择性搜索(关键字vpath)
- 目录搜索的机制
- 命令行和搜索目录
- 隐含规则和搜索目录
- 库文件和搜索目录
3.6 Makefile伪目标:如`.PHONY`,用于确保目标总是被认为过时,即使同名的文件存在。
3.7 强制目标:没有命令或依赖的规则,用于标记目标。
3.8 空目标文件:用于创建只用于标记目的的空文件。
3.9 Makefile的特殊目标:如`.SUFFIXES`、`.DEFAULT`等。
3.10 多目标:一个规则可以同时处理多个目标。
3.11 多规则目标:一个目标可以有多个规则。
3.12 静态模式:更灵活的规则编写方式,允许模式匹配。
- 静态模式规则的语法:详细讲解了静态模式的使用方法。
本书全面覆盖了Makefile的各个方面,对于理解和编写高效的Makefile来说,是一份不可或缺的参考资料。无论是初学者还是经验丰富的开发者,都能从中受益匪浅,提高构建效率,更好地管理项目构建过程。
2020-04-28 上传
2020-05-30 上传
2020-12-21 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
sunnyheyun
- 粉丝: 8
- 资源: 53
最新资源
- IPQ4019 QSDK开源代码资源包发布
- 高频组电赛必备:掌握数字频率合成模块要点
- ThinkPHP开发的仿微博系统功能解析
- 掌握Objective-C并发编程:NSOperation与NSOperationQueue精讲
- Navicat160 Premium 安装教程与说明
- SpringBoot+Vue开发的休闲娱乐票务代理平台
- 数据库课程设计:实现与优化方法探讨
- 电赛高频模块攻略:掌握移相网络的关键技术
- PHP简易简历系统教程与源码分享
- Java聊天室程序设计:实现用户互动与服务器监控
- Bootstrap后台管理页面模板(纯前端实现)
- 校园订餐系统项目源码解析:深入Spring框架核心原理
- 探索Spring核心原理的JavaWeb校园管理系统源码
- ios苹果APP从开发到上架的完整流程指南
- 深入理解Spring核心原理与源码解析
- 掌握Python函数与模块使用技巧