当前位置:网站首页>动态库、静态库浅析
动态库、静态库浅析
2022-08-01 12:20:00 【魔幻音】
静态库
①命名以*.o结尾
②静态库在链接阶段直接加入可执行文件,执行过程无需该静态库
③静态库生成的文件链接产生的可执行文件 相对于动态库 较大
动态库
特点
①命名以*.so结尾
②目标文件在链接阶段只指明链接的动态库,动态库与目标文件互相独立,执行过程需要该动态库
③动态库生成的目标文件较小
对于工程共通源码文件(如多个进程使用同一模块源码),将其制作为动态库可节省系统空间。当动态库出现bug,只需要重新生成一个动态库替换即可。
内存实现
动态库在整个内存空间有一份,而每个进程都有各自的虚拟空间,虚拟空间会通过匿名映射(mmap)使其进程与动态库关联。
加载
显式链接
不需要申明动态库相关头文件,调用时需要加载动态库名称
只有执行到相应代码时才加载动态库(大型项目)
隐式链接
需要添加相应头文件
由系统控制加载时间,一般在程序启动时就加载(项目启动即可发现库是否有问题)
边栏推荐
- CAN通信标准帧和扩展帧介绍
- SQL函数 SQUARE
- [Open class preview]: Research and application of super-resolution technology in the field of video image quality enhancement
- 深入解析volatile关键字
- ECCV22|只能11%的参数就能优于Swin,微软提出快速预训练蒸馏方法TinyViT
- SQL函数 SQRT
- [CLion] CLion always prompts "This file does not belong to any project target xxx" solution
- 新一代超安全蜂窝电池, 思皓爱跑上市13.99万元起售
- R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图、使用stat_central_tendency函数在密度中添加均值竖线并自定义线条类型
- R语言诊断ARIMA模型:forecast包构建了一个ARIMA模型、使用checkresiduals函数诊断ARIMA模型、并进行结果解读(拟合较差的ARIMA模型具有的特点)
猜你喜欢
随机推荐
How to use DevExpress controls to draw flowcharts?After reading this article, you will understand!
博弈论(Depu)与孙子兵法(42/100)
How to Integrate Your Service Registry with Istio?
如何获取微信视频号的地址(微信公众号的链接地址)
安装apex报错
初级必备:单例模式的7个问题
sql中ddl和dml(数据库表与视图的区别)
.NET性能优化-使用SourceGenerator-Logger记录日志
如何将第三方服务中心注册集成到 Istio ?
The CAN communication standard frame and extended frame is introduced
测试发文
Qt get all files in a folder
Software designer test center summary (interior designer personal summary)
达梦更换正式授权dm.key
CloudCompare & PCL ICP registration (point to face)
Aeraki Mesh Joins CNCF Cloud Native Panorama
【公开课预告】:超分辨率技术在视频画质增强领域的研究与应用
SCHEMA解惑
Feign 从注册到调用原理分析
【StoneDB Class】入门第二课:StoneDB 整体架构解析









