当前位置:网站首页>动态库、静态库浅析
动态库、静态库浅析
2022-08-01 12:20:00 【魔幻音】
静态库
①命名以*.o结尾
②静态库在链接阶段直接加入可执行文件,执行过程无需该静态库
③静态库生成的文件链接产生的可执行文件 相对于动态库 较大
动态库
特点
①命名以*.so结尾
②目标文件在链接阶段只指明链接的动态库,动态库与目标文件互相独立,执行过程需要该动态库
③动态库生成的目标文件较小
对于工程共通源码文件(如多个进程使用同一模块源码),将其制作为动态库可节省系统空间。当动态库出现bug,只需要重新生成一个动态库替换即可。
内存实现
动态库在整个内存空间有一份,而每个进程都有各自的虚拟空间,虚拟空间会通过匿名映射(mmap)使其进程与动态库关联。
加载
显式链接
不需要申明动态库相关头文件,调用时需要加载动态库名称
只有执行到相应代码时才加载动态库(大型项目)
隐式链接
需要添加相应头文件
由系统控制加载时间,一般在程序启动时就加载(项目启动即可发现库是否有问题)
边栏推荐
猜你喜欢
随机推荐
并发编程10大坑,你踩过几个?
Envoy 源码流程图
bpmn-process-designer基础上进行自定义样式(工具、元素、菜单)
Deep understanding of Istio - advanced practice of cloud native service mesh
【云享新鲜】社区周刊·Vol.73- DTSE Tech Talk:1小时深度解读SaaS应用系统设计
找出相同属性值的对象 累加数量 汇总
(ES6以上以及TS) Map对象转数组
表连接详解
Grafana9.0发布,Prometheus和Loki查询生成器、全新导航、热图面板等新功能!
关于亚马逊测评,你了解多少?
Dapr 与 NestJs ,实战编写一个 Pub & Sub 装饰器
如何将第三方服务中心注册集成到 Istio ?
如何设计一个分布式 ID 发号器?
数据湖 delta lake和spark版本对应关系
.NET性能优化-使用SourceGenerator-Logger记录日志
The four methods of judging JS data type
如何获取微信视频号的地址(微信公众号的链接地址)
一文带你读懂云原生、微服务与高可用
易周金融分析 | 银行ATM机智能化改造提速;互联网贷款新规带来挑战
音视频技术开发周刊 | 256