GNU make中文手册:Makefile编写权威指南
需积分: 3 174 浏览量
更新于2024-08-01
收藏 2.28MB PDF 举报
"GNU make中文手册,是一本详细解释Makefile编写和GNU make工具使用的教程,适合有经验的开发者深入学习。该手册涵盖了从基础到高级的各个层面,包括Makefile的概述、规则、变量、自动推导、条件语句等内容。"
GNU make是Unix和类Unix系统中广泛使用的构建工具,它根据Makefile中的规则来编译和链接程序。Makefile包含了目标、依赖项和执行这些目标所需的命令。中文手册提供了以下关键知识点:
1. **概述**:介绍了GNU make的基本概念,包括它的作用和在软件开发中的重要性。
2. **准备知识**:读者应具备的基本编程和shell命令的知识,以便理解Makefile的工作原理。
3. **GNU make介绍**:
- **Makefile简介**:讲解了Makefile的结构和基本元素,如目标、依赖项和命令。
- **Makefile规则**:详细阐述了规则的格式,包括目标、依赖项和命令行。
- **简单的示例**:通过实例展示如何编写和使用Makefile。
- **make如何工作**:解释了make如何解析Makefile,决定哪些目标需要重新构建。
- **指定变量**:介绍了如何在Makefile中定义和使用变量,以提高可读性和复用性。
- **自动推导规则**:说明了make如何自动推导源文件和目标文件之间的关系,简化Makefile编写。
- **另类风格的makefile**:讨论了非传统的Makefile编写方式。
- **清除工作目录过程文件**:讲解如何设置清理目标,删除编译过程中产生的临时文件。
4. **Makefile总述**:
- **Makefile的内容**:涵盖Makefile可以包含的指令和信息。
- **makefile文件的命名**:讨论了Makefile文件的命名约定和默认查找规则。
- **包含其它makefile文件**:解释了如何在一个Makefile中包含其他文件,以实现模块化。
- **变量MAKEFILES**:描述了这个特殊变量的作用,用于指定额外的Makefile位置。
- **变量MAKEFILE_LIST**:列出所有被加载的Makefile文件。
- **其他特殊变量**:提及其他对make行为有影响的预定义变量。
- **makefile文件的重建**:如何让make自身更新或重建Makefile。
- **重载另外一个makefile**:如何在运行时指定不同的Makefile。
5. **Makefile的规则**:
- **规则语法**:详细讲解了规则的构成和执行顺序。
- **依赖的类型**:区分了显式依赖和隐含依赖。
- **文件名使用通配符**:如何利用通配符匹配多个文件,以及其可能的限制和解决方案。
- **目录搜寻**:介绍了如何配置make查找依赖文件的路径,包括`VPATH`和`vpath`关键字。
- **Makefile伪目标**:用于表示不实际存在的目标,如`clean`。
- **强制目标**:没有命令或依赖的规则,用于控制流程。
- **空目标文件**:用于创建空文件作为目标,确保依赖项被处理。
- **Makefile的特殊目标**:如`.PHONY`、`.SUFFIXES`等,它们有特定的含义和功能。
- **多目标**:一个规则可以对应多个目标。
- **多规则目标**:一个目标可以有多个规则,按顺序执行。
- **静态模式**:使用模式规则,简化规则编写,尤其是与隐含规则结合时。
手册还涵盖了条件语句、函数、隐含规则、目标的排序以及更复杂的用法,是开发者深入理解并有效利用GNU make构建项目的重要参考资料。
186 浏览量
2011-07-31 上传
539 浏览量
117 浏览量
2025-01-09 上传
2025-01-09 上传
linlinyuyu
- 粉丝: 9
- 资源: 22
最新资源
- talks:我讲过的各种演讲的幻灯片和资料
- ColorRampGenerator:色带生成器
- 具有dnssec支持的重要隐私,快速递归的dns解析器服务器-Golang开发
- ASP人才网内容管理系统(源代码+论文).zip
- 梅吉特
- Google浏览器安装包
- favicon-badge:一个Polymer元素,用于使用动态设置的数字声明式更新Webapp的favicon。
- react-way-immutable-flux:使用ES6,Immutable.js和Flux的React.js方法
- Trubble
- testina
- uskzvqgn.zip_相位跟踪
- my-plugin-manager:用于WordPress主题或插件的嵌入式脚本,为您的用户提供一个界面,以管理您建议与产品一起使用的插件
- 用数组实现一个线性表.zip
- Gx00_83-05-33-SNMP.zip
- imersaodev-conversoranosluz:每天从法拉利岛(Códigofeitotambémna1ª)出发。 Us programa em que quee convert anos luz emquilômetrose assim poder saber adistânciade planetas e astros
- [Android实例] Android 竖着的SeekBar.rar