makefile自动变量解析与隐含规则介绍
需积分: 25 8 浏览量
更新于2024-08-05
收藏 10.86MB PDF 举报
"这篇文档主要介绍了在`makefile`中常用的自动变量以及它们的含义,同时也涉及到了`makefile`的规则和隐式规则的概念。此外,文档还提及了嵌入式Linux的基础知识,包括其快速发展和流行的原因。"
在`makefile`中,自动变量是一种方便的工具,用于简化构建过程中的命令编写。以下是几个关键的自动变量:
1. `$*`: 表示目标文件的基本名称,不包含扩展名。例如,如果目标文件是`kang.o`,则`$*`就是`kang`。
2. `$+`: 包含所有依赖文件的列表,按它们在`makefile`中出现的顺序,可能存在重复。
3. `$<`: 表示第一个依赖文件的名称,这对于编译时链接头文件非常有用。
4. `$?`: 包含所有比目标文件新(时间戳更晚)的依赖文件,用空格分隔。
5. `$@`: 表示目标文件的完整名称,包括扩展名。
6. `$^`: 类似于`$+`,但去掉了重复的依赖文件。
在提供的`makefile`示例中,这些变量被用来构建目标`david`,并分别编译源文件`kang.c`和`yul.c`。`$<`用于传递源文件,`$@`用于指定目标文件,而`$^`确保所有依赖文件都用于链接。
此外,`makefile`可以使用环境变量,这些变量在`make`运行时自动导入,但如果`makefile`中重新定义了相同的变量,那么`makefile`中的定义将覆盖环境变量。
在`makefile`规则部分,隐式规则是预定义的规则,使`make`能够自动推断如何执行某些常见的构建任务,比如编译C源文件。这种规则减少了用户必须明确指定的命令数量。
关于嵌入式Linux,文档指出它是基于Linux的操作系统,广泛应用于通信、信息、家庭设备和工业控制等领域。嵌入式Linux的迅速发展得益于其开源和免费的特性,以及Linux内核的灵活性和可定制性。由于这些优势,嵌入式Linux能够与专有的操作系统如VxWorks和Windows CE竞争。
这篇文档提供了`makefile`自动化构建的关键概念,以及嵌入式Linux的基本背景和市场地位,对于理解和操作嵌入式Linux系统的开发流程有着重要的指导作用。
220 浏览量
1196 浏览量
221 浏览量
2021-03-18 上传
115 浏览量
2021-05-14 上传
462 浏览量
点击了解资源详情
李_涛
- 粉丝: 58
- 资源: 3851
最新资源
- 节点层
- ROS-for-Covid-Application
- Java打砖块儿游戏代码
- 连锁特许经营知识培训(5)DOC
- optee-rs:专为optee设计的防锈漆
- streamify-app
- 初级java笔试题-Interview:让我们学习那些白板
- 罗莱专卖店经营成功案例分析培训DOC
- 易语言源码易语言例程更新自身防误报.rar
- 霍夫曼编码:Python中的School项目
- java笔试题算法-topictiling:TopicTiling是一种基于LDA的文本切分方法
- Công Cụ Đặt Hàng Đặt Hàng Đà Nẵng-crx插件
- mjwedding:WordPress主题婚礼
- 易语言源码易语言使系统控制菜单失效源码.rar
- url:解析,构建和处理URL
- 营业厅课程培训——营业厅现场管理