当前位置:网站首页>动态库、静态库浅析
动态库、静态库浅析
2022-08-01 12:20:00 【魔幻音】
静态库
①命名以*.o结尾
②静态库在链接阶段直接加入可执行文件,执行过程无需该静态库
③静态库生成的文件链接产生的可执行文件 相对于动态库 较大
动态库
特点
①命名以*.so结尾
②目标文件在链接阶段只指明链接的动态库,动态库与目标文件互相独立,执行过程需要该动态库
③动态库生成的目标文件较小
对于工程共通源码文件(如多个进程使用同一模块源码),将其制作为动态库可节省系统空间。当动态库出现bug,只需要重新生成一个动态库替换即可。
内存实现
动态库在整个内存空间有一份,而每个进程都有各自的虚拟空间,虚拟空间会通过匿名映射(mmap)使其进程与动态库关联。
加载
显式链接
不需要申明动态库相关头文件,调用时需要加载动态库名称
只有执行到相应代码时才加载动态库(大型项目)
隐式链接
需要添加相应头文件
由系统控制加载时间,一般在程序启动时就加载(项目启动即可发现库是否有问题)
边栏推荐
- Dapr 与 NestJs ,实战编写一个 Pub & Sub 装饰器
- 如何将第三方服务中心注册集成到 Istio ?
- How to Integrate Your Service Registry with Istio?
- 重庆市大力实施智能建造,推动建筑业数字化转型,助力“建造强市”
- 判断JS数据类型的四种方法
- 【面试高频题】难度 1.5/5,二分经典运用题
- Complete Raiders of JS Data Type Conversion
- Several methods of appending elements are commonly used in js: append, appendTo, after, before, insertAfter, insertBefore, appendChild
- 音视频技术开发周刊 | 256
- 数据湖 delta lake和spark版本对应关系
猜你喜欢
随机推荐
Meshlab&Open3D SOR滤波
Aeraki Mesh became CNCF sandbox project
AI目标分割能力,无需绿幕即可实现快速视频抠图
(ES6 and above and TS) Map object to array
mysql进阶(二十二)MySQL错误之Incorrect string value中文字符输入错误问题分析
How to Integrate Your Service Registry with Istio?
Dameng replaces the officially authorized dm.key
CloudCompare & PCL ICP registration (point to face)
Envoy 源码流程图
博弈论(Depu)与孙子兵法(42/100)
R language ggplot2 visualization: use ggpubr package ggscatter function visualization scatterplot, use xscale wasn't entirely specified X axis measurement adjustment function, set the X coordinate for
Aeraki Mesh 正式成为 CNCF 沙箱项目
pandas连接oracle数据库并拉取表中数据到dataframe中、筛选当前时间(sysdate)到一个小时之前的所有数据(筛选一个小时的范围数据)
R语言检验时间序列的平稳性:使用tseries包的adf.test函数实现增强的Dickey-Fuller(ADF)检验、检验时序数据是否具有均值回归特性(平稳性)、具有均值回归特性的案例
SCHEMA解惑
[Unity3D Plugin] AVPro Video Plugin Share "Video Player Plugin"
Aeraki Mesh 加入 CNCF 云原生全景图
[Community Star Selection] Issue 24 August Update Plan | Keep writing, refuse to lie down!More original incentive packages, as well as Huawei WATCH FIT watches!
SQL函数 %SQLUPPER
数字证书原理








