理解Makefile中的模式规则与变量应用
需积分: 50 112 浏览量
更新于2024-08-10
收藏 964KB PDF 举报
"《定义模式规则-算法引论:一种创造性方法》是关于Makefile的教程,由陈皓编写,祝冬华整理。教程详细介绍了Makefile的规则、变量、命令、条件判断以及函数的使用,特别关注了模式规则的概念及其在文件编译过程中的应用。"
在Makefile中,模式规则是一种强大的工具,它允许我们定义通用的构建规则,适用于一组具有共同模式的文件。标题和描述中提到的"%"字符是模式规则的核心,它代表一个或多个任意字符,用于匹配不同的文件名。
1. **模式规则的定义**:
- 模式规则的目标至少包含一个"%",用于定义一个模板,可以匹配一系列类似的文件名。
- "%."可以匹配以特定后缀(如.c)结束的文件,而"s.%.c"则匹配以"s."开头,".c"结尾的文件。
- 目标中的"%"值决定依赖目标中的"%"值,这意味着在运行时根据目标文件的实际名字来确定依赖文件的名字。
2. **"%"的展开时机**:
- 变量和函数的展开是在Makefile加载时完成的,而模式规则中的"%"是在运行时,即在实际匹配文件名时展开。
3. **模式规则的应用**:
- 模式规则使得我们可以为类似文件类型定义通用的编译或链接步骤,简化Makefile的编写。
- 例如,可以定义一个规则"%.o: %.c",表示将所有.c源文件编译成相应的.o目标文件。
4. **其他Makefile知识点**:
- 显式规则是直接指明目标及其依赖的具体规则,而隐晦规则是通过模式推导自动应用的规则。
- 变量在Makefile中用于存储和重用命令、文件路径等信息,可以通过简单的赋值或追加操作进行管理。
- 命令的执行可以被控制,如使用行首的制表符使其在后台执行,或者使用shell函数进行更复杂的操作。
- 条件判断和函数的使用增加了Makefile的灵活性,可以根据不同条件执行不同的构建逻辑,或者进行复杂的字符串和文件名操作。
5. **函数和变量**:
- Makefile提供了多种内置函数,如 subst、patsubst 用于字符串替换,dir 和 notdir 用于提取文件路径的目录和文件名部分。
- 变量的高级用法包括变量中的变量、追加值、覆盖(override)以及多行变量的定义。
这个教程通过详细的解释和例子,引导读者理解并熟练运用Makefile,提高软件构建的自动化程度和效率。无论是对于个人项目还是大型工程,掌握Makefile的使用都是提高开发效率的关键。
2656 浏览量
2018-08-20 上传
161 浏览量
2012-12-01 上传
168 浏览量
2013-08-29 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
LI_李波
- 粉丝: 60
- 资源: 4019
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能