理解GNU make:静态库更新与 SSE4.2 命令集
需积分: 4 20 浏览量
更新于2024-08-09
收藏 4.21MB PDF 举报
"GNU make makefile 中文手册"
在GNU make中,静态库的更新涉及到对目标文件的操作,尤其是使用`ar`命令。静态库的更新是通过形如"A(M)"的目标来实现的,其中"A"代表库文件的名字,"M"是库文件中的成员。这种形式的目标表示规则的目标是静态库"A"的成员"М"。当make处理"A(M)"这样的目标时,它会查找满足"(M)"的隐含规则,并将其视为满足"A(M)"的目标。
特殊的模式规则使用目标模式"(%)",用于更新"A(M)",即将文件"M"添加到库"A"中。如果库文件"A"不存在,`ar`命令会创建它。例如,命令`make 'foo.a(bar.o)'`会先通过隐含规则生成"bar.o",然后将其加入到"foo.a"库中。在这个过程中,"bar.o"作为一个中间文件处理。
隐含规则链是make执行命令的关键,它可以将多个规则串联起来。在这个例子中,如果"bar.c"存在,make会执行以下命令:
1. `cc -c bar.c -o bar.o` 编译源文件生成目标文件
2. `ar r foo.a bar.o` 将"bar.o"添加到库"foo.a"中
3. `rm -f bar.o` 删除中间文件"bar.o"
自动化变量在这里也起到了作用,例如在规则命令行中,可以使用`$%`代替"bar.o"。自动化变量允许我们以一种抽象的方式编写规则,使得它们更加通用。
静态库中的成员名不包含目录信息,这意味着当我们用`nm`命令查看库成员时,只能看到成员本身的名称,而不知道它们创建时所在的目录。然而,在Makefile中,我们可以直接指定静态库的成员,即使成员位于不同的目录下,make会根据规则去寻找并添加这些成员。
关于GNU make的其他知识点,包括Makefile的基本结构、规则的定义、变量的使用、自动推导规则、目录搜索、隐含规则和库文件的处理等。Makefile可以包含多个文件,通过`include`指令进行包含,还可以通过`MAKEFILES`变量指定额外的Makefile。make解析Makefile时会考虑变量的取值、条件语句以及规则的定义顺序。
静态库的更新是通过Makefile中特定格式的目标和隐含规则实现的,这涉及到源文件的编译、静态库的创建或更新,以及自动化变量的运用。同时,make的整个工作流程包括变量赋值、规则匹配和执行,以及对目录和文件的搜索机制,这些都构成了构建和管理项目的关键部分。
2016-09-08 上传
2022-04-11 上传
2019-08-29 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-06-13 上传
2021-06-25 上传
烧白滑雪
- 粉丝: 28
- 资源: 3866
最新资源
- 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库