GNU make中文手册:Makefile编写指南
需积分: 36 182 浏览量
更新于2024-10-30
收藏 1.34MB PDF 举报
"GNUmake中文手册,由徐海兵翻译整理,涵盖了GNU make工具的使用,包括Makefile的编写、规则、变量、搜索目录等内容,旨在帮助用户理解和掌握自动化构建过程。"
GNU make是用于自动化构建项目的工具,它通过读取Makefile来决定哪些文件需要更新,并执行相应的命令。这份中文手册详细介绍了GNU make的基础知识和高级特性。
**第一章:概述**
这一章对GNU make进行了简要介绍,包括其基本概念和用途。它强调了理解Makefile结构和工作原理的重要性,是初学者入门的基础。
**第二章:GNU make介绍**
章节详细讲解了Makefile的基本元素,如:
- **Makefile简介**:介绍了Makefile的结构和作用,它是GNU make的核心。
- **Makefile规则**:规则定义了文件之间的依赖关系以及如何更新目标文件。
- **简单示例**:通过实例展示了如何编写一个基本的Makefile。
- **make如何工作**:解释了make如何解析和执行Makefile中的指令。
- **指定变量**:变量在Makefile中用于存储值,简化了重复的命令或设置。
- **自动推导规则**:make能自动推导某些类型的依赖关系,减少手动声明。
- **另类风格的makefile**:讨论了不同风格的Makefile写法。
- **清除工作目录过程文件**:如何设置清理目标以删除临时或编译产生的文件。
**第三章:Makefile总述**
本章深入探讨了Makefile的各个方面:
- **Makefile的内容**:涵盖了Makefile可以包含的各种指令和信息。
- **makefile文件的命名**:说明了默认的Makefile名称及如何指定非默认的Makefile。
- **包含其它makefile文件**:通过`include`指令组合多个Makefile。
- **变量MAKEFILES**:系统如何处理包含的Makefile。
- **变量MAKEFILE_LIST**:记录了被加载的所有Makefile。
- **其他特殊变量**:如目标、依赖、命令等变量的作用。
- **makefile文件的重建**:当Makefile自身改变时,如何重新构建。
- **重载另一个makefile**:如何在运行过程中切换Makefile。
- **make如何解析makefile文件**:详细解析过程,包括变量取值、条件语句和规则定义。
**第四章:Makefile的规则**
规则是Makefile的核心部分,本章深入解析了规则的各种细节:
- **一个例子**:通过实际案例展示规则的使用。
- **规则语法**:规范了目标、依赖和命令的书写格式。
- **依赖的类型**:包括直接依赖和间接依赖。
- **文件名使用通配符**:利用`*`和`?`进行批量匹配,以及相关的缺陷和解决方案。
- **目录搜寻**:如何在多个目录下查找依赖文件。
- **Makefile伪目标**:如`.PHONY`,确保目标总是被重新构建。
- **强制目标和空目标文件**:控制make的行为,即使目标已经存在也执行命令。
- **特殊目标**:如`.SILENT`、`.DELETE_ON_ERROR`等,影响make的默认行为。
- **多目标和多规则目标**:允许一个规则更新多个目标。
- **静态模式**:提供了更灵活的规则定义方式,允许更精细的控制。
这个手册全面覆盖了GNU make的各个方面,无论是初学者还是经验丰富的开发者,都能从中受益,提升对自动化构建的理解和实践能力。
2008-12-12 上传
2009-04-03 上传
2024-11-11 上传
2024-11-11 上传
2024-11-11 上传
2024-11-11 上传
2024-11-11 上传
skyhb
- 粉丝: 12
- 资源: 9
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍