GNU make中文手册:Makefile编写指南
需积分: 36 181 浏览量
更新于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的各个方面,无论是初学者还是经验丰富的开发者,都能从中受益,提升对自动化构建的理解和实践能力。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2009-09-14 上传
2010-04-13 上传
2009-09-01 上传
2008-11-24 上传
点击了解资源详情
2024-11-29 上传
skyhb
- 粉丝: 12
- 资源: 9
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍