GNU Makefile 中文完全指南
需积分: 36 22 浏览量
更新于2024-07-28
收藏 1.34MB PDF 举报
"GNUmakefile中文手册,由徐海兵翻译整理,涵盖了GNUmake的各个方面,包括概述、Makefile的介绍、Makefile总述以及Makefile的规则等章节,是学习和理解makefile的全面教程。"
GNU Make 是一个强大的自动化构建工具,广泛用于软件工程中的编译和构建过程。在编程领域,`makefile`是指导`make`程序如何编译和链接源代码的配置文件。这份中文手册详细介绍了`makefile`的各个关键概念和用法。
**第一章:概述**
这一章主要介绍了`make`的基本概念和用途,包括`make`在软件开发中的角色,以及了解`make`前需要的基础知识。
**第二章:GNUmake介绍**
1. **Makefile简介**:讲解了Makefile的结构和作用,它是如何告诉`make`哪些文件需要被更新,以及如何更新它们。
2. **Makefile规则**:规则定义了目标文件依赖于哪些源文件,以及如何构建这些目标文件的命令。
3. **简单的示例**:通过实例展示了基本的Makefile编写方法。
4. **make如何工作**:解释了`make`如何读取和解析Makefile,以及执行构建过程。
5. **指定变量**:介绍了如何在Makefile中定义和使用变量,以提高可读性和可维护性。
6. **自动推导规则**:`make`内建了一些隐含规则,可以自动推断源文件和目标文件之间的转换过程。
7. **另类风格的makefile**:探讨了不同风格的Makefile编写方式。
8. **清除工作目录过程文件**:讲解了如何在Makefile中定义清理目标,以删除编译过程中产生的临时文件。
**第三章:Makefile总述**
1. **Makefile的内容**:描述了Makefile可能包含的各种指令和部分。
2. **makefile文件的命名**:说明了可以使用不同名字的Makefile,并解释了默认选择。
3. **包含其它makefile文件**:如何通过`include`指令引入其他Makefile以组织大型项目。
4. **变量MAKEFILES**:这个环境变量可以影响`make`的行为。
5. **变量MAKEFILE_LIST**:存储了当前被读取的所有Makefile列表。
6. **其他特殊变量**:列举了`make`预定义的一些特殊变量。
7. **makefile文件的重建**:讨论了如何让`make`自动重建Makefile。
8. **重载另外一个makefile**:如何在运行时切换到不同的Makefile。
9. **make如何解析makefile文件**:详细解释了`make`解析和处理Makefile的步骤。
**第四章:Makefile的规则**
1. **一个例子**:通过实例演示了Makefile规则的使用。
2. **规则语法**:详细阐述了规则的语法结构。
3. **依赖的类型**:区分了直接依赖和间接依赖。
4. **文件名使用通配符**:如何利用通配符来匹配多个文件,同时提到了通配符的局限性以及`wildcard`函数。
5. **目录搜寻**:介绍了`VPATH`变量和`vpath`关键字来指定搜索源文件的路径。
6. **Makefile伪目标**:如`.PHONY`,用于确保目标总是被重新构建,即使同名的文件存在。
7. **强制目标**:没有命令或依赖的规则,用于指示`make`执行特定操作。
8. **空目标文件**:创建不包含任何内容的文件作为目标,用于记录状态。
9. **Makefile的特殊目标**:如`.SUFFIXES`、`.DEFAULT`等,它们有特定的含义和功能。
10. **多目标**:一个规则可以更新多个目标文件。
11. **多规则目标**:针对同一目标的不同构建方法。
12. **静态模式**:静态模式规则提供了更灵活的依赖关系处理方式。
13. **双冒号规则**:双冒号规则提供了更精确的依赖控制。
这份手册深入浅出地解释了`make`和`makefile`的使用,是开发者学习构建自动化和版本控制的重要参考资料。通过阅读和实践,读者将能够熟练地编写和管理Makefile,从而提高软件项目的构建效率。
2016-07-16 上传
2019-11-07 上传
2021-09-30 上传
2022-09-19 上传
2009-09-26 上传
2015-10-12 上传
2013-03-10 上传
2010-05-13 上传
2014-06-09 上传
zyssok
- 粉丝: 1
- 资源: 2
最新资源
- Accuinsight-1.0.4-py2.py3-none-any.whl.zip
- yama:Yama的编译器,一种面向对象的微控制器语言,例如ARM Cortex-M和AVR
- ap-event-lib:事件框架库
- 队列分析
- docker-compose2.172下载后拷贝到/usr/local/bin下
- webstore
- Employee-Summary
- media-source-demo:媒体源演示
- 家:普拉特姆学院
- LilSteve:第175章
- tilde-world
- Accuinsight-1.0.25-py2.py3-none-any.whl.zip
- 标题栏随着RecyclerView滚动背景渐变
- 浏览器自定义查看pdf文件.rar
- 直接序列扩频(DS SS):这是直接序列扩频的代码。-matlab开发
- flutter_dylinkios_sample:使用Dart的示例项目