makefile自动变量解析与隐含规则介绍
需积分: 18 47 浏览量
更新于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系统的开发流程有着重要的指导作用。
2012-03-06 上传
2023-05-16 上传
2023-03-21 上传
2023-06-02 上传
2023-09-08 上传
2023-03-31 上传
2023-06-09 上传
2024-09-20 上传
李_涛
- 粉丝: 54
- 资源: 3915
最新资源
- JSP+SSM科研管理系统响应式网站设计案例
- 推荐一款超级好用的嵌入式串口调试工具
- PHP域名多维查询平台:高效精准的域名搜索工具
- Citypersons目标检测数据集:Yolo格式下载指南
- 掌握MySQL面试必备:程序员面试题解析集锦
- C++软件开发培训:核心技术资料深度解读
- SmartSoftHelp二维码工具:生成与解析条形码
- Android Spinner控件自定义字体大小的方法
- Ubuntu Server on Orangepi3 LTS 官方镜像发布
- CP2102 USB驱动程序的安装与更新指南
- ST-link固件升级指南:轻松更新程序步骤
- Java实现的质量管理系统Demo功能分析与操作
- Everything高效文件搜索工具:快速精确定位文件
- 基于B/S架构的酒店预订系统开发实践
- RF_Setting(E22-E90(SL)) V1.0中性版功能解析
- 高效转换M3U8到MP4:免费下载工具发布