Makefile深入解析:追加变量值与override指示符
需积分: 50 57 浏览量
更新于2024-08-10
收藏 964KB PDF 举报
"这篇文档是关于Makefile的深入讲解,由陈皓撰写,并由祝冬华整理。文章详细介绍了如何编写Makefile,包括变量的使用、规则的制定、命令的执行以及条件判断和函数的应用等内容。特别强调了追加变量值的`+=`操作符和`override`指示符的用法。"
在Makefile中,追加变量值是通过`+=`操作符实现的。这个操作符允许我们在已经定义的变量后面添加新的值,而不会覆盖原有的内容。例如,如果有一个变量`objects`,初始值为`main.o foo.o bar.o utils.o`,通过`objects += another.o`,`objects`的值将变为`main.o foo.o bar.o utils.o another.o`,`another.o`被追加到原有的列表中。这比直接使用`objects = $(objects) another.o`更简洁。
`+=`操作符具有智能性,它根据变量之前是否已定义以及之前的赋值方式来决定其行为。如果变量之前未定义,`+=`相当于`=`, 即首次赋值。如果变量之前已经被赋值,且使用的是`:=`(立即展开赋值),那么`+=`也会采用`:=`的方式,将新值与旧值合并。然而,如果之前使用的是`=`(延迟展开赋值),`+=`仍会保持`=`的特性,这样可能会导致递归定义,但GNU `make`会自动处理这个问题,避免了不良影响。
`override`指示符是用于处理命令行参数设置的变量。在某些情况下,如果Makefile中定义了一个变量,但用户在命令行上通过参数覆盖了该变量,通常Makefile中的赋值会被忽略。但是,使用`override`关键字前缀的赋值语句将会强制覆盖命令行的设定,确保Makefile中的规则能够正确应用。
整个文档分为多个部分,涵盖了Makefile的各个方面,包括规则的编写、变量的使用、命令的控制以及条件判断和函数的运用等,旨在帮助读者全面理解和掌握Makefile的编写技巧。这对于任何需要自动化构建和管理项目的人来说都是宝贵的资源。
2656 浏览量
2018-08-20 上传
161 浏览量
2024-11-09 上传
2023-07-23 上传
2024-11-09 上传
2023-04-30 上传
2023-10-17 上传
2023-07-27 上传
杨_明
- 粉丝: 79
- 资源: 3862
最新资源
- Thinking in java 2rd Edition
- 互联网产品开发流程文档
- 七种数据库连接 mysql、oracle……
- 模式识别前四章答案-清华大学-边肇祺
- struts2权威指南
- Struts in Action 中文版
- JBoss+jBPM+jPDL用户开发手册
- PHOTOSHOP技巧
- 李涛JAVA学习资料
- 人力资源系统很详细的描述
- JasperReport-iReport报表开发指南.pdf
- Ant全攻略 教会你如何玩转Ant
- 手把手教你用C#打包应用程序(安装程序)
- 实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架
- 数字电视原理与实现pdf
- 我的VS2008学习资料