Makefile入门教程:一周学会编写Makefile

需积分: 9 15 下载量 9 浏览量 更新于2024-07-09 收藏 802KB PDF 举报
"跟我一起写Makefile.pdf" 是一本针对初学者的教程,旨在帮助读者在一周内掌握Makefile的编写。由陈皓撰写并由祝冬华整理,该资料涵盖了从基础到进阶的多个方面,包括Makefile的概述、程序编译和链接、Makefile的规则、变量的使用、自动推导、另类风格的Makefile、清理规则、Makefile总述、书写规则、命令执行、变量应用以及条件判断和函数的使用。 1. **概述**: - Makefile是用于自动化构建项目的工具,它定义了一系列规则来告诉编译器如何构建、编译和链接程序。 2. **程序的编译和链接**: - Makefile帮助管理复杂的项目结构,简化编译和链接过程,确保只重新编译修改过的源文件。 3. **Makefile的规则**: - 规则由目标文件、依赖文件和命令组成,描述了如何从依赖文件生成目标文件。 - 示例规则通常包含目标、依赖和使用Tab键开头的命令行。 4. **变量的使用**: - Makefile中的变量用于存储值,可以减少重复并使Makefile更易读。 - 变量可以动态赋值,也可以使用扩展机制自动推导。 5. **自动推导**: - make能自动推导源文件和目标文件之间的关系,例如C程序的`.c`文件与`.o`文件。 6. **另类风格的Makefile**: - 除了标准格式外,Makefile可以采用不同的书写风格以适应特定项目需求。 7. **清理规则**: - 清空目标文件的规则允许开发者清除编译过程中生成的临时和目标文件。 8. **Makefile总述**: - 包含显式规则(直接指定的构建规则)、隐晦规则(make自动推导的规则)、变量定义、文件指示和注释。 - Makefile可以有默认名称,也可引用其他Makefile,并受环境变量MAKEFILES影响。 9. **书写规则**: - 规则可以包含通配符用于匹配一组文件,文件搜寻机制帮助找到依赖文件。 - 伪目标如`.PHONY`用于避免与实际文件名冲突。 - 静态模式和多目标规则允许更灵活的构建逻辑。 10. **命令**: - 命令可以被显示或隐藏执行,出错时可以设置行为,支持嵌套make调用。 - 定义命令包允许组织和重用命令序列。 11. **使用变量**: - 变量基础包括设置和使用,变量中可以嵌套其他变量,支持高级用法如追加赋值。 - `override`指示符用于覆盖Makefile外部设置的变量。 - 多行变量和目标、模式变量提供更复杂的配置能力。 12. **条件判断**: - Makefile支持条件语句,可以根据不同条件执行不同的构建逻辑。 13. **函数**: - Makefile函数用于字符串和文件名操作,例如替换、筛选、排序等。 以上内容构成了《跟我一起写Makefile》的主要教学内容,通过学习,读者将能够熟练地编写和理解Makefile,提高软件开发的效率。