Makefile教程:变量基础与使用
需积分: 49 189 浏览量
更新于2024-08-08
收藏 443KB PDF 举报
"跟我一起写 Makefile - 陈皓"
在编程世界中,Makefile 是一个不可或缺的工具,尤其是在构建和管理项目时。本教程主要针对TI TMS320F28379D开发板,讲解如何使用Makefile中的变量进行有效的文件管理和编译控制。变量是Makefile的核心组成部分,它们允许我们存储和重用信息,提高Makefile的灵活性和可读性。
在Makefile中,变量的定义和使用有以下几点需要注意:
1. **变量的声明**:变量的名称可以由字符、数字和下划线组成,但不能以冒号、井号、等号或空白字符开头。变量是区分大小写的,如"foo"、"Foo"和"FOO"被视为三个独立的变量。通常建议使用混合大小写的变量名,如"MakeFlags",以避免与系统变量混淆。
2. **变量的赋值**:变量在定义时需要赋初值,使用等号 (=) 进行赋值。在使用变量时,需要在其前加上美元符号 ($),如`$(variable)`。为了防止与Makefile中的特殊字符冲突,可以使用括号包裹变量,如`$(variable)`或`${variable}`。
3. **变量的展开**:变量的值在使用时会被替换到其出现的位置,类似于C/C++中的宏替换。例如:
```make
objects = program.o foo.o utils.o
program : $(objects)
cc -o program $(objects)
$(objects) : defs.h
```
在这个例子中,`$(objects)`在规则中被展开为`program.o foo.o utils.o`。
4. **特殊字符**:在变量中,`$`是一个特殊的字符,如果要表示实际的`$`,需要写成`$$`。自动化变量如`$<`代表第一个依赖目标,`$@`代表目标文件,将在后续章节中详细介绍。
5. **变量的扩展**:Makefile支持变量的递归扩展,即变量的值中可以包含其他变量,这些变量在使用时也会被展开。这种特性使得Makefile能够构建复杂的依赖关系。
6. **变量的追加**:可以使用`+=`操作符追加值到已有的变量,而不是覆盖原有的值,这对于管理多个源文件列表非常有用。
7. **override指示符**:`override`用于覆盖Makefile或环境中的变量设置,确保命令的执行按照指定的变量值进行。
8. **多行变量**:在Makefile中,可以通过在行尾添加反斜杠(`\`)实现变量定义的跨行。
9. **环境变量**:Makefile可以访问和使用系统环境变量,但要注意它们可能会带来预期之外的行为。
10. **目标变量**和**模式变量**:特定于目标或模式的变量,可以根据规则的不同目标进行定制化设置。
通过深入理解并熟练运用这些变量机制,开发者可以编写出高效、灵活的Makefile,简化项目的构建过程。本教程的后续章节将更详细地探讨变量的高级用法,条件判断,函数,以及make的运行机制等内容,帮助读者成为Makefile的高手。
2021-03-23 上传
2012-05-08 上传
2010-06-29 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
羊牮
- 粉丝: 41
- 资源: 3855
最新资源
- 我的毕业设计好的资源
- dwr.pdf中文文档
- 论文写作是作为科研写作的好东西
- XP+Embedded开发初体验.pdf
- C#完全手册.pdf 基本编程方法 面向对象编程基础 界面设计与文件存取 ADO.NET与数据操作 ASP网站开发
- 系统服务的详细设置已经服务选项的含义
- Delphi 6程序设计及其应用开发目录
- 关于图书馆的可行性分析
- 中国移动网优试题真是好啊
- ajax实战中文版pdf
- Spring+Hibernate+Struts2整合开发.docx
- 遥控键解码602LCD显示
- 存储过程实例oracle.doc
- Hibernate与Struts2和Spring组合开发.pdf
- verilog 实例
- C# 抽象工厂 Dao 详解