当前位置:网站首页>动态库、静态库浅析
动态库、静态库浅析
2022-08-01 12:20:00 【魔幻音】
静态库
①命名以*.o结尾
②静态库在链接阶段直接加入可执行文件,执行过程无需该静态库
③静态库生成的文件链接产生的可执行文件 相对于动态库 较大
动态库
特点
①命名以*.so结尾
②目标文件在链接阶段只指明链接的动态库,动态库与目标文件互相独立,执行过程需要该动态库
③动态库生成的目标文件较小
对于工程共通源码文件(如多个进程使用同一模块源码),将其制作为动态库可节省系统空间。当动态库出现bug,只需要重新生成一个动态库替换即可。
内存实现
动态库在整个内存空间有一份,而每个进程都有各自的虚拟空间,虚拟空间会通过匿名映射(mmap)使其进程与动态库关联。
加载
显式链接
不需要申明动态库相关头文件,调用时需要加载动态库名称
只有执行到相应代码时才加载动态库(大型项目)
隐式链接
需要添加相应头文件
由系统控制加载时间,一般在程序启动时就加载(项目启动即可发现库是否有问题)
边栏推荐
猜你喜欢
随机推荐
《MySQL核心知识》第6章:查询语句
新一代超安全蜂窝电池, 思皓爱跑上市13.99万元起售
Fault 007: The dexp derivative is inexplicably interrupted
STM32 CAN过滤器配置详解
Qt获取文件夹下所有文件
C#/VB.NET 将PPT或PPTX转换为图像
找出相同属性值的对象 累加数量 汇总
关于亚马逊测评,你了解多少?
SQL函数 %SQLUPPER
SQL函数 SQUARE
字体反爬之好租
新书上市 |《谁在掷骰子?》在“不确定性时代”中确定前行
通配符SSL证书不支持多域名吗?
SQL函数 %SQLSTRING
How to Integrate Your Service Registry with Istio?
Visualization of lag correlation of two time series data in R language: use the ccf function of the forecast package to draw the cross-correlation function, and analyze the lag correlation according t
迁移学习冻结网络的方法:
轮询和长轮询的区别
重庆市大力实施智能建造,推动建筑业数字化转型,助力“建造强市”
Several methods of appending elements are commonly used in js: append, appendTo, after, before, insertAfter, insertBefore, appendChild