GNU make 中的特性溯源:模式规则与历史版本差异
需积分: 4 50 浏览量
更新于2024-08-09
收藏 978KB PDF 举报
"源自其他版本的特点-layui当点击文本框时弹出选择框显示选择内容的例子"
这篇资源主要讨论了`makefile`中的一些特性,这些特性来源于不同的make工具版本。`make`是一个构建自动化工具,它根据规则来编译、链接或者其他方式处理文件。以下是一些关键知识点:
1. **模式规则**:使用模式字符“%”的规则在多个版本的make中存在,允许创建通用的构建规则。`10.5 模式规则`章节详细介绍了这一点。
2. **规则链与隐含的中间过程文件**:首次出现在Stu Feldman的make版本中,并在AT&T的Unix系统中得到应用。`10.4 隐含规则链`章节对此进行了阐述。
3. **自动化变量“$^”**:代表规则的所有依赖文件,但不确定是由哪个特定的make版本引入的。`10.5.3 自动化变量`章节提供了更多细节。
4. **命令行的“what if”选项(-W)**:据称是Andrew Hume在mk中首次提出的,允许预览命令执行的结果。`9.7 make的命令行选项`中有相关说明。
5. **并发执行**:支持并发执行命令的功能在多个make版本中都有实现,但System V和BSD未实现。`5.3 并发执行命令`章节详细讨论了这一特性。
6. **变量的模式替换引用**:源自SunOS 4,允许通过模式匹配来替换变量值。在GNU make中,`6.3 变量的高级用法`章节介绍了函数`patsubst`提供的类似功能。
7. **命令行前的“+”字符**:在IEEE Standard 1003.2-1992 (POSIX.2)中定义,具有特殊含义,用于确保命令执行不会被缓存。`9.3 替代命令的执行`中有所解释。
8. **追加赋值“+=”**:这一语法特性来自SunOS 4,用于向变量追加值,详细内容可在`6.6 追加变量值`找到。
9. **静态库成员列表作为目标**:`ARCHIVE(MEM1 MEM2...)`语法源自SunOS 4的make,允许直接指定静态库的成员。`11.1 库成员作为目标`章节对此进行了解释。
10. **“-include”指令**:从SunOS 4的make继承,即使包含的文件不存在也不会出错。`3.3 包含其它makefile文件`部分对此进行了描述。
以上这些特性都是在不同版本的`make`工具中逐渐发展并引入的,它们使得`makefile`更加强大和灵活,能更好地适应各种项目构建的需求。在编写和理解`makefile`时,了解这些特性可以帮助我们更有效地管理和自动化构建过程。
2020-10-16 上传
161 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-01-19 上传
2022-11-04 上传
柯必Da
- 粉丝: 42
- 资源: 3802
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库