GNU Make使用手册翻译:Linux源码阅读必备
3星 · 超过75%的资源 需积分: 9 167 浏览量
更新于2024-08-02
收藏 662KB DOC 举报
"MakeFile 使用手册"
GNU Make 是一个强大的自动化构建工具,广泛应用于软件开发中,特别是Linux系统。Makefile是GNU Make的工作蓝本,它定义了一系列规则来告诉make如何编译和链接源代码。这份手册是GNU Make 3.79版本的中文翻译,由业余爱好者于凤昌翻译,旨在帮助那些对Linux源代码有深入研究需求或使用GCC进行编程但对GNU Make不熟悉的人士。
手册分为多个章节,详细阐述了Makefile的各个方面:
1. **Make概述**:
- 阐述了手册的阅读方法和如何处理遇到的问题或BUG。
2. **Makefile文件介绍**:
- **规则的格式**:介绍了规则的基本构成,包括目标、依赖和命令。
- **一个简单的Makefile文件**:展示了一个基础的Makefile示例。
- **make处理makefile文件的过程**:解释了make是如何解析和执行Makefile的步骤。
- **使用变量简化makefile文件**:说明了如何利用变量来减少重复和提高可读性。
- **让make推断命令**:描述了make自动推断编译命令的能力。
- **另一种风格的makefile文件**:讨论了不同风格的Makefile编写方式。
- **在目录中删除文件的规则**:展示了如何定义规则来删除特定的文件。
3. **编写makefile文件**:
- **makefile文件的内容**:讲述了Makefile应包含哪些内容。
- **makfile文件的命名**:说明了Makefile文件的命名约定。
- **包含其它的makefile文件**:解释了如何使用`include`指令来合并多个Makefile。
- **变量MAKEFILES**:介绍了预定义的MAKEFILES变量的作用。
- **makefile文件重新生成的过程**:讨论了如何让make自动更新Makefile。
- **重载其它makefile文件**:讲述了如何覆盖或扩展已存在的Makefile。
- **make读取makefile文件的过程**:详细描述了make读取和处理Makefile的流程。
4. **编写规则**:
- **规则的语法**:深入规则的语法规则和细节。
- **在文件名中使用通配符**:展示了如何使用通配符来匹配一组文件。
- **在目录中搜寻依赖**:说明了如何处理跨目录的依赖关系。
- **假想目标**:定义了不存在但用于构建流程中的虚拟目标。
- **没有命令或依赖的规则**:讨论了没有实际命令和依赖的目标。
- **使用空目标文件记录事件**:解释了如何用空目标来标记已完成的任务。
- **内建的特殊目标名**:如`.PHONY`和`.SILENT`等,这些目标有特殊的含义。
- **具有多个目标的规则**:描述了在一个规则中处理多个目标的方法。
- **具有多条规则的目标**:当一个目标可以有多种构建方式时,如何设置多条规则。
- **静态格式规则**:静态模式规则允许更灵活的依赖处理。
- **双冒号规则**:双冒号规则提供了另一种定义规则的方式,具有不同的行为。
5. **在规则中使用命令**:
- **命令回显**:控制是否显示命令行的回显。
- **执行命令**:解释了make如何执行命令以及命令执行的环境。
- **并行执行**:如何利用make的并行构建能力加快构建速度。
- **命令错误**:处理命令执行失败的情况。
- **中断或关闭make**:用户如何在构建过程中中断make进程。
- **递归调用make**:如何在一个Makefile中调用另一个Makefile以处理子项目。
这份手册全面且深入地讲解了GNU Make的使用,对于理解Makefile的编写和构建过程至关重要。无论是初学者还是经验丰富的开发者,都可以从中获得宝贵的指导。通过学习,读者将能够熟练掌握编写高效、易维护的Makefile技巧,从而更好地管理复杂的软件工程。
2011-09-19 上传
2018-06-26 上传
2009-02-25 上传
2012-04-29 上传
2010-10-09 上传
yejinp
- 粉丝: 2
- 资源: 3
最新资源
- 新代数控API接口实现CNC数据采集技术解析
- Java版Window任务管理器的设计与实现
- 响应式网页模板及前端源码合集:HTML、CSS、JS与H5
- 可爱贪吃蛇动画特效的Canvas实现教程
- 微信小程序婚礼邀请函教程
- SOCR UCLA WebGis修改:整合世界银行数据
- BUPT计网课程设计:实现具有中继转发功能的DNS服务器
- C# Winform记事本工具开发教程与功能介绍
- 移动端自适应H5网页模板与前端源码包
- Logadm日志管理工具:创建与删除日志条目的详细指南
- 双日记微信小程序开源项目-百度地图集成
- ThreeJS天空盒素材集锦 35+ 优质效果
- 百度地图Java源码深度解析:GoogleDapper中文翻译与应用
- Linux系统调查工具:BashScripts脚本集合
- Kubernetes v1.20 完整二进制安装指南与脚本
- 百度地图开发java源码-KSYMediaPlayerKit_Android库更新与使用说明