理解与编写Makefile指南

需积分: 17 4 下载量 58 浏览量 更新于2024-07-21 1 收藏 572KB PDF 举报
"跟我一起写Makefile.pdf" 是一本由陈皓编著,祝冬华整理的关于Makefile的教程,旨在深入浅出地教授读者如何编写Makefile。这本书分为多个部分,涵盖了Makefile的基本概念、规则、变量使用、条件判断以及函数应用等内容。 **第一部分:概述** 这部分介绍了Makefile的重要性,它是自动化构建程序的关键工具,用于编译和链接源代码,简化了重复的构建过程。 **第二部分:关于程序的编译和链接** 这里讲述了程序的编译和链接过程,为理解Makefile的作用打下基础。 **第三部分:Makefile介绍** 1. **规则**:Makefile的规则定义了如何从源文件生成目标文件。 2. **示例**:提供了一个简单的Makefile实例来演示规则的使用。 3. **工作原理**:解释了make是如何根据规则来决定哪些文件需要重新编译。 4. **变量**:介绍了Makefile中如何定义和使用变量。 5. **自动推导**:说明了make如何自动推导依赖关系。 6. **另类风格**:讨论了不同风格的Makefile编写方式。 7. **清空目标文件**:展示了如何制定清除目标文件的规则。 **第四部分:Makefile总述** 1. **内容构成**:包括显式规则、隐晦规则、变量定义、文件指示和注释。 2. **文件名**:讨论Makefile的默认名称和如何指定不同的名字。 3. **引用其他Makefile**:解释了如何在一个Makefile中包含另一个Makefile的内容。 4. **环境变量MAKEFILES**:介绍了这个变量对Makefile的影响。 5. **工作方式**:详细阐述make执行Makefile的过程。 **第五部分:书写规则** 1. **规则示例**:提供了更多的规则编写案例。 2. **规则语法**:讲解了规则的正确结构。 3. **通配符**:如何在规则中使用通配符来匹配多个文件。 4. **文件搜寻**:描述了make如何查找依赖文件。 5. **伪目标**:如`.PHONY`,用于标识那些实际上不存在的但需要执行的目标。 6. **多目标**:一个规则可以创建多个目标文件的方法。 7. **静态模式**:静态模式规则允许灵活地指定模式。 8. **自动生成依赖性**:通过编译器生成依赖性的方法。 **第六部分:书写命令** 1. **显示命令**:如何在执行时打印命令。 2. **命令执行**:解释了命令何时以及如何被运行。 3. **命令出错**:当命令执行失败时,make的响应策略。 4. **嵌套执行make**:在Makefile中调用其他make进程。 5. **命令包**:如何定义一组命令作为一个单元来执行。 **第七部分:使用变量** 1. **基础**:介绍了变量的赋值和使用。 2. **变量中的变量**:如何在变量中嵌套其他变量。 3. **高级用法**:如函数式变量和扩展变量等复杂用法。 4. **追加值**:向变量追加新值而不是覆盖已有值。 5. **override指示符**:强制覆盖Makefile中的变量设置。 6. **多行变量**:如何处理跨越多行的变量值。 7. **环境变量**:Makefile中如何使用环境变量。 8. **目标变量**:与特定目标关联的变量。 9. **模式变量**:与模式规则相关的变量。 **第八部分:使用条件判断** 1. **示例**:给出了条件判断的实际应用。 2. **语法**:详细说明了条件语句的结构。 **第九部分:使用函数** 1. **调用语法**:如何在Makefile中调用函数。 2. **字符串处理函数**:包括`subst`、`patsubst`、`strip`、`findstring`、`filter`、`filter-out`、`sort`、`word`、`wordlist`、`words`、`firstword`等,以及它们的功能和用法实例。 3. **文件名操作函数**:如`dir`和`notdir`,用于处理路径和文件名。 这本书全面覆盖了Makefile的各个方面,是学习和掌握Makefile编写技巧的重要参考资料。通过阅读,读者能够熟练编写和理解Makefile,提高项目构建的效率。
2025-01-08 上传
2025-01-08 上传