
GNU make中文手册:Makefile入门与高级技巧
下载需积分: 36 | 1.34MB |
更新于2024-09-21
| 160 浏览量 | 举报
收藏
"GNU make中文手册,ver - 3.8,由徐海兵翻译整理,内容涵盖GNU make的概述、Makefile的介绍、Makefile总述、规则详解等,包括Makefile的编写、规则定义、变量使用、自动推导、目录搜索、伪目标等核心概念。"
GNU make是一个强大的自动化构建工具,广泛应用于软件开发中,用于自动化编译、链接和其他构建过程。中文手册详细介绍了其功能和用法,包括以下主要知识点:
1. **概述**:简要介绍GNU make的基本功能和在软件开发中的角色,以及读者需要掌握的基础知识,如shell命令和基本编程概念。
2. **Makefile介绍**:
- **Makefile简介**:Makefile是GNU make的工作基础,用于定义目标文件及其依赖关系,以及构建这些目标的命令。
- **规则介绍**:规则定义了目标文件和它们的依赖,以及当依赖文件改变时应执行的命令。
- **简单示例**:展示了一个基本的Makefile结构,包括目标、依赖和命令。
- **make如何工作**:解释了make如何根据规则检查文件的更新时间,并决定哪些目标需要重新构建。
- **指定变量**:变量用于存储重复使用的字符串,简化Makefile的编写。
- **自动推导规则**:make能自动推导某些类型的依赖关系,例如编译C程序。
- **另类风格的makefile**:介绍不同风格的Makefile写法,如GNUMake的扩展规则和函数。
- **清除过程文件**:如何定义清理目标以删除临时或编译产生的文件。
3. **Makefile总述**:
- **内容**:讨论Makefile可以包含的内容,如变量定义、规则定义等。
- **文件命名**:可以使用不同的文件名来存放Makefile,但通常使用`Makefile`或`makefile`。
- **包含其他makefile**:通过`include`指令,可以将多个Makefile组合在一起。
- **变量MAKEFILES**:系统变量`MAKEFILES`用于指定额外的Makefile路径。
- **变量MAKEFILE_LIST**:记录当前被读取的所有Makefile。
- **特殊变量**:其他一些预定义的特殊变量,如目标列表、依赖列表等。
- **文件重建**:讨论如何处理Makefile自身的修改,使其自动重建。
- **重载makefile**:如何用新的Makefile替换当前的。
- **解析过程**:描述make解析Makefile的步骤,包括变量赋值、条件语句和规则定义。
4. **Makefile规则**:
- **规则语法**:详细阐述规则的结构,包括目标、依赖和命令行。
- **依赖类型**:依赖可以是文件、目标,甚至可以是其他规则。
- **通配符**:使用`*`、`?`等通配符匹配一组文件。
- **目录搜索**:通过`VPATH`和`vpath`指定查找依赖文件的目录。
- **伪目标**:如`.PHONY`,确保即使同名文件存在,也会执行对应的命令。
- **强制目标**:没有命令或依赖的规则,用于标记特殊状态。
- **空目标**:用于创建只作为依赖目标的文件。
- **特殊目标**:如`.SILENT`、`.INTERMEDIATE`等,控制make的行为。
- **多目标**:一个规则可以创建多个目标。
- **多规则目标**:针对同一目标的多个规则。
- **静态模式**:使用模式规则,减少规则重复,与隐含规则协同工作。
这本手册全面地涵盖了GNU make的各个方面,对于理解并有效利用make进行软件构建非常有帮助。通过深入学习,开发者可以编写出高效、灵活的Makefile,自动化项目构建过程,提高开发效率。
相关推荐







火焰哥哥
- 粉丝: 17
最新资源
- 解决TextView图文排版不规范问题的代码实践
- 设计四路高速光电隔离转换模块提升电路抗干扰
- 开发总结:拍照、定位等功能模块分享
- 多Agent系统JADE安装教程与文件下载
- ArcGIS二调符号库1万深度解读
- 深入分析IPMsg源码:开源项目解读笔记
- 掌握jai_imageio与swingx:Java图片与验证码识别库
- MySQL数据库备份压缩包
- Qt技术与libusb驱动的USB通信解决方案
- 探索Fragment动画的多样化变化效果
- 影音先锋8.9.1:全新P2P云播放体验
- GYJ-0005: 工业级四路光电隔离转换模块设计介绍
- Oracle官方最新客户端下载:instantclient_12_1
- Java初学者必学:飞机大战游戏开发指南
- 海康威视网络抓拍机C#源码Demo:设备管理与图片捕获
- CMarkup:C语言中操作XML的强大插件
- Android开发源码教程:从基础到高级实践
- Android平台短信发送功能实现演示
- CMemDC类在MFC中解决绘图闪烁问题
- Struts2与Spring、iBatis集成整合包详解
- WPF TreeViewItem自定义样式技巧与实现
- 掌握ViewPager页面布局,提升移动应用交互体验
- 四级联动JS实现收货地址管理高效联动
- 微信摇一摇功能实现及分享接口代码解析