GNU make中文手册:学习makefile的必备指南
需积分: 36 139 浏览量
更新于2024-11-18
收藏 1.34MB PDF 举报
"GNUmake中文手册,ver-3.81,由徐海兵翻译整理,2004-09-11发布"
GNU Make是一个强大的自动化构建工具,广泛用于Linux和GNU系统中,用于管理和编译源代码项目。手册是学习`makefile`编写的重要参考资料,它详细介绍了如何编写和使用`makefile`来自动化构建过程。
**第一章:概述**
这一章主要介绍了`make`的基本概念,以及学习`makefile`所需的预备知识。`make`通过读取`makefile`中的指令,自动执行编译、链接等任务,从而简化了复杂的项目构建过程。
**第二章:GNU make介绍**
本章详细讲解了`Makefile`的基本结构和元素。`Makefile`通常包含规则,规则定义了目标文件和依赖文件之间的关系,以及当目标文件需要更新时应执行的命令。`Makefile`规则由目标、依赖和命令三部分组成。
- **Makefile简介**:说明了`Makefile`的作用和基本组成。
- **规则介绍**:解释了规则的格式,包括目标、依赖和命令行。
- **简单示例**:提供了基本`Makefile`的例子,展示了如何定义规则。
- **make如何工作**:描述了`make`程序如何根据目标文件和依赖文件的时间戳决定是否执行命令。
- **指定变量**:介绍了如何在`Makefile`中定义和使用变量,以提高可读性和可复用性。
- **自动推导规则**:`make`可以自动推断某些类型的依赖关系,例如源文件与对应的编译对象文件。
- **另类风格的makefile**:提到了不同风格的`Makefile`写法。
- **清除工作目录过程文件**:展示了如何在`Makefile`中定义清理目标以删除临时或编译产生的文件。
**第三章:Makefile总述**
这一章深入讨论了`Makefile`的高级特性。
- **Makefile的内容**:涵盖了`Makefile`可能包含的各种指令和声明。
- **文件命名**:讲述了如何命名`Makefile`,以及`make`如何寻找`Makefile`。
- **包含其它makefile**:说明了如何通过`include`指令合并多个`Makefile`。
- **变量MAKEFILES**:这个特殊变量可以用来指定额外的`Makefile`。
- **变量MAKEFILE_LIST**:记录了`make`加载的所有`Makefile`列表。
- **其他特殊变量**:介绍了其他一些有用的预定义变量。
- **makefile文件的重建**:讨论了如何让`make`自动重建`Makefile`。
- **重载另一个makefile**:如何在运行时改变`make`使用的`Makefile`。
- **make如何解析makefile**:解析`Makefile`的过程,包括变量取值、条件语句和规则定义。
**第四章:Makefile的规则**
本章详细探讨了`Makefile`规则的各种细节。
- **规则示例**:提供了一个实际的规则实例。
- **规则语法**:详述了规则的正确书写方式。
- **依赖的类型**:依赖可以是文件或其他规则。
- **文件名通配符**:`*`, `?` 和 `[]` 的使用方法,以及它们的限制。
- **函数wildcard**:用于获取当前目录下匹配通配符的文件列表。
- **目录搜索**:`VPATH`变量和`vpath`关键字用于指定搜索依赖文件的额外目录。
- **Makefile伪目标**:如`.PHONY`,确保即使目标存在也不会跳过执行命令。
- **强制目标和空目标**:没有命令或依赖的目标,用于控制构建流程。
- **特殊目标**:如`.SILENT`, `.INTERMEDIATE`, `.PRECIOUS`等,它们有特定的含义和作用。
- **多目标**:一个规则可以处理多个目标。
- **多规则目标**:一个目标可以有多个规则,按照顺序执行。
- **静态模式**:更灵活的规则写法,可以处理多种情况。
通过这份手册,读者能够全面了解和掌握`makefile`的编写技巧,进而有效地管理和构建软件项目。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2009-09-14 上传
2009-02-17 上传
2009-03-28 上传
点击了解资源详情
点击了解资源详情
2018-03-08 上传
kelehaha
- 粉丝: 3
- 资源: 3
最新资源
- Angular实现MarcHayek简历展示应用教程
- Crossbow Spot最新更新 - 获取Chrome扩展新闻
- 量子管道网络优化与Python实现
- Debian系统中APT缓存维护工具的使用方法与实践
- Python模块AccessControl的Windows64位安装文件介绍
- 掌握最新*** Fisher资讯,使用Google Chrome扩展
- Ember应用程序开发流程与环境配置指南
- EZPCOpenSDK_v5.1.2_build***版本更新详情
- Postcode-Finder:利用JavaScript和Google Geocode API实现
- AWS商业交易监控器:航线行为分析与营销策略制定
- AccessControl-4.0b6压缩包详细使用教程
- Python编程实践与技巧汇总
- 使用Sikuli和Python打造颜色求解器项目
- .Net基础视频教程:掌握GDI绘图技术
- 深入理解数据结构与JavaScript实践项目
- 双子座在线裁判系统:提高编程竞赛效率