### GNU Make 使用手册知识点概述 #### 1. make概述 - **阅读指南**:文档开头提供了如何有效地阅读此手册的建议。这对于初次接触GNU Make的新手尤为重要,它可以帮助读者找到最相关的部分,并按照最佳顺序进行学习。 - **问题与BUG报告**:介绍了遇到问题时应该如何反馈,包括提供必要的信息来帮助开发者定位问题。 #### 2. Makefile文件介绍 - **规则格式**:讲解了Makefile文件中的基本构建块——规则的基本格式。 - **简单示例**:通过一个简单的Makefile示例帮助读者快速上手,理解如何编写最基本的Makefile文件。 - **处理流程**:解释了make工具如何解析和执行Makefile文件中的规则。 - **变量简化**:演示了如何使用变量来简化Makefile文件,使其更易于维护和扩展。 - **推断命令**:介绍了make如何自动推断构建命令,减少显式指定命令的需要。 - **替代样式**:展示了另一种编写Makefile文件的方法,这种方法可能会更适合某些项目的需求。 - **文件删除规则**:提供了在特定目录中删除文件的规则示例,这对于清理工作非常重要。 #### 3. 编写Makefile文件 - **内容结构**:详细说明了Makefile文件通常应该包含哪些内容,如规则、变量定义等。 - **文件命名**:解释了Makefile文件的命名约定,这有助于make工具正确识别主Makefile文件。 - **包含其他文件**:介绍了如何将其他Makefile文件的内容包含到主Makefile文件中,这对于组织大型项目非常有用。 - **变量MAKEFILES**:定义了一个特殊的变量,用于追踪包含的所有Makefile文件。 - **Makefile文件的再生**:描述了当Makefile文件本身也需要被构建时的情况。 - **重载其他文件**:说明了如何在Makefile文件中重新加载或覆盖其他Makefile文件的内容。 - **读取过程**:详细阐述了make工具读取Makefile文件的整个过程,这对于理解Makefile文件的执行顺序至关重要。 #### 4. 编写规则 - **语法**:讲解了规则的基本语法结构。 - **通配符使用**:介绍了如何在文件名中使用通配符来匹配一组文件,以及常见的错误和解决方法。 - **依赖搜索**:解释了如何配置make在指定目录中查找文件依赖,包括VPATH的使用和vpath指令的具体应用。 - **目录搜索过程**:深入探讨了make如何在不同目录中搜索依赖文件的过程。 - **假想目标**:讨论了什么是假想目标及其用途。 - **无命令或依赖**:解释了不包含任何命令或依赖项的规则的应用场景。 - **空目录文件**:介绍了如何使用空目录文件作为目标来记录构建过程中的事件。 - **特殊目标名**:列出了预定义的一些特殊目标名,这些目标名具有特殊的含义或行为。 - **多目标规则**:讨论了如何编写同时包含多个目标的规则。 - **多规则目标**:阐述了同一个目标可以有多个规则的情况及其应用场景。 - **静态格式规则**:详细解释了静态格式规则的概念、语法及其与隐含规则的区别。 - **双冒号规则**:介绍了双冒号规则的语法及其用途。 - **依赖自动生成**:讲述了如何使make自动检测并生成依赖关系。 #### 5. 在规则中使用命令 - **命令回显**:解释了如何显示命令而不执行它们。 - **执行命令**:介绍了make如何执行shell命令,并处理命令执行时可能出现的问题。 - **并行执行**:探讨了如何利用多核处理器并行执行命令,提高构建效率。 - **命令错误处理**:描述了make如何处理命令执行失败的情况。 - **中断与停止**:说明了如何中断或停止make的执行。 - **递归调用**:讲解了如何从一个Makefile文件中递归调用另一个Makefile文件,以及如何传递变量和选项。 - **固定次序命令**:定义了固定次序命令的含义及其应用场景。 - **空命令**:解释了何时以及为何可能需要使用空命令。 #### 6. 使用变量 - **引用基础**:提供了变量引用的基础知识,包括如何在Makefile文件中引用变量。 - **两个特色**:强调了变量在Makefile文件中具有的两个关键特性。 - **高级引用技术**:深入介绍了如何进行更复杂的变量引用操作。 - **取值方式**:讲解了如何获取变量的实际值。 - **设置变量**:说明了如何在Makefile文件中设置变量。 - **文本追加**:介绍了如何向已存在的变量值追加文本。 - **override指令**:解释了如何使用override指令来修改变量值。 - **多行变量**:讨论了如何定义包含多行文本的变量。 - **环境变量**:介绍了如何使用系统环境变量以及它们如何影响Makefile文件的行为。 - **特定目标变量**:说明了如何为特定目标定义变量。 - **特定格式变量**:介绍了特定格式变量的概念及其应用场景。 #### 7. Makefile文件的条件语句 - **条件语句示例**:通过示例展示了如何使用条件语句来根据不同的条件执行不同的逻辑。 - **语法结构**:详细说明了条件语句的语法结构。 - **测试标志**:介绍了如何使用测试标志来进行条件判断。 #### 8. 文本转换函数 - **函数调用**:提供了函数调用的基本语法。 - **字符串操作**:解释了如何使用函数来替换字符串中的特定部分或分析字符串结构。 - **文件名操作**:介绍了如何使用函数来处理文件名,例如提取文件名的部分信息。 - **foreach函数**:解释了如何使用foreach函数来遍历列表中的元素。 - **if函数**:介绍了如何使用if函数来进行条件判断。 - **call函数**:讲解了如何使用call函数来调用其他函数。 - **origin函数**:解释了如何使用origin函数来获取变量的来源。 - **shell函数**:介绍了如何使用shell函数来执行shell命令。 - **控制函数**:说明了如何使用特定函数来控制make的执行流程。 #### 9. 运行make - **指定Makefile参数**:介绍了如何通过命令行参数来指定Makefile文件的位置。 - **指定目标参数**:说明了如何通过命令行参数来指定构建的目标。 - **代替命令执行**:解释了如何更改make默认执行的命令。 - **避免重新编译**:介绍了如何避免不必要的文件重新编译。 - **变量重载**:讨论了如何在运行时重载Makefile文件中的变量值。 - **测试编译器**:说明了如何使用make来测试编译器的功能。 - **选项概览**:提供了make命令的常用选项概览。 #### 10. 使用隐含规则 - **隐含规则应用**:解释了隐含规则的用途和如何启用它们。 - **规则目录**:提供了隐含规则的完整目录,方便查阅。 - **使用的变量**:介绍了隐含规则使用的变量及其作用。 - **规则链**:说明了隐含规则是如何链接在一起以形成构建序列的。 - **格式规则定义**:介绍了如何定义和重新定义格式规则。 - **最新类型规则**:讨论了如何定义新类型的隐含规则。 - **过时规则**:解释了哪些隐含规则已被标记为过时,以及为何如此。 - **规则搜索算法**:详细介绍了make如何搜索适用的隐含规则的算法。 #### 11. 使用make更新档案文件 - **档案成员目标**:解释了如何将档案文件的成员作为目标进行构建。 - **成员更新规则**:提供了更新档案成员的隐含规则。 - **索引更新**:介绍了如何更新档案文件中的索引以反映最新的成员状态。 - **使用档案风险**:警告了使用档案文件进行构建的一些潜在风险。 - **后缀规则**:讨论了专门针对档案文件的后缀规则。 #### 12. GNU make的特点 - **独特功能**:列出了GNU make相对于其他构建工具的独特功能。 #### 13. 不兼容性和丢失的特点 - **不兼容性**:说明了GNU make与其他版本make不兼容的地方。 - **丢失特点**:列举了一些在新版GNU make中不再支持的功能。 #### 14. Makefile高级主题 - 预期这部分将涉及更多关于Makefile文件编写技巧的高级主题,但由于提供的内容片段未包含具体细节,此处暂不展开。
- onlysundy2014-09-14这个资料感觉不是很好。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助