理解Makefile中的变量引用与规则
需积分: 34 2 浏览量
更新于2024-08-10
收藏 1.45MB PDF 举报
"本文档主要介绍了stc8h系列单片机技术参考手册中关于变量引用的部分,以及GNU Make工具的使用方法。"
在编写Makefile时,变量的引用是核心概念之一。在stc8h系列单片机的编程环境中,Makefile用于自动化构建过程,变量则帮助组织和复用代码。变量的引用有两种形式:“$(VARIABLE_NAME)”和“${VARIABLE_NAME}”。例如,如果你想引用名为“foo”的变量,可以写成“$(foo)”或“${foo}”。由于美元符号“$”在Makefile中有特殊含义(表示变量引用),如果要在命令或文件名中直接使用“$”,需使用两个美元符号“$$”来转义。
Makefile中的变量引用展开是一个简单的文本替换过程,类似于C语言中的宏展开。例如,定义`objects = program.o foo.o utils.o`,然后在规则中使用`$(objects)`,这将导致变量值被替换为对应的文件列表。要注意的是,变量值的前导空格在展开时会被忽略。尽管这样的展开方式易于理解,但不推荐在实际编写Makefile时频繁使用,因为可能会导致不必要的复杂性。
在某些情况下,特别是当变量名为单字符时,可以简写为“$x”来引用变量,如“$o”。此外,自动化变量(如“$@”代表目标,"$<"代表第一个依赖项)也采用这种格式。对于多字符的普通变量,必须使用括号来引用,避免混淆。
GNU Make是广泛使用的构建自动化工具,其手册详细介绍了Makefile的编写和工作原理。手册涵盖了Makefile的结构、规则、变量、条件语句、目录搜索等众多方面。比如,Makefile可以包含目标、依赖关系和命令,make工具根据这些信息决定哪些文件需要重新编译。变量可以用来存储文件列表、编译选项等,而规则定义了如何从依赖文件生成目标文件。通过`$(VPATH)`和`vpath`,可以设置文件搜索路径,提高灵活性。此外,Makefile中还包括特殊目标如`.PHONY`(伪目标)和`.SUFFIXES`(定义文件扩展名规则),以及静态模式规则等高级特性。
学习并熟练掌握变量引用和GNU Make的用法,将极大地提升Makefile的编写效率和项目的可维护性。正确使用这些工具,可以自动化编译流程,节省时间和精力。
2020-09-08 上传
2020-04-12 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
131 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
张诚01
- 粉丝: 32
- 资源: 3916
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍