静态库与动态库

Linux动态库与静态库 基于著名书籍和自我学习得出的Linux动态库与静态库精华知识 阅读详情

库的定义:

库从本质上说是一种可执行的二进制代码形式,可以被操作系统载入内存执行;
linux下的库分两种: 静态库和动态库(共享库)

静态库:

静态库就是一些目标文件的集合,以.a 结尾

动态库:

又名共享库,以.so(share object)结尾,在程序链接的时候做一些标记,然后在程序开始启动运行的时候动态的加载所需的模块

静态库与动态库的区别:

二者载入内存的时刻不同:

静态库的代码在代码编译过程中就被载入可执行程序,即编译后的执行程序不需要外部函数库支持,因此体积比较大
动态库的代码在可执行程序运行时才载入内存,即程序运行时必须调用相应的库函数,在编译过程中仅是简单的引用,因此代码体积比较小

库名后缀不同:

静态库的名字一般为libxxx.a
动态库的名字一般为libxxx.so

库升级所带来的影响不同:

静态库是编译过程中就被载入程序,因此若静态函数库改变了,程序就必须重新编译,静态库的升级不方便
动态库是程序运行时才载入内存,因此动态库的改变不会影响程序的执行,动态库的升级比较方便

动态库与静态库的相同点:

都是由*.o目标文件生成

使用静态库的好处:

1.模块化,分工合作
2.避免少量改动导致大量的重复编译链接
3.可以重用,但不是共享使用

使用动态库的好处:

1.可以将最终可执行文件体积缩小
2.多个应用程序共享内存中的同一份文件,节省资源
3.可以在重新编译链接可执行程序的前提下,更新动态库文件达到更新应用程序的目的

深入浅出之动态库与静态库 动态库是一种在程序运行时才被加载的库文件,它包含了函数和数据,可以被多个程序共享。 阅读详情

相关推荐

SO逆向入门实战教程一:OASIS

文章目录一、前言二、准备三、Unidbg模拟执行四、ExAndroidNativeEmu 模拟执行五、算法分析六、尾声 一、前言 这是SO逆向入门实战教程的第一篇,总共会有十三篇,十三个实战。有以下几个注意点: 主打入门级的实战,适合有一定基础但缺少实战的朋友(了解JNI,也上过一些Native层逆向的课,但感觉实战匮乏,想要壮壮胆,入入门)。 侧重新工具、新思路、新方法的使用,算法分析的常见路子是Frida Hook + IDA ,在本系列中,会淡化Frida 的作用,采用Unidbg Hook + .

lilac的博客 2万+

静态库与动态库的区别

动态库与静态库的区别

m0_69124108的博客 3171

电流模架构Bandgap设计与仿真

带隙基准作为集成电路中一个重要模块,被广泛应用在低压差线性稳压(LDO)、充电电池保护芯片和通信电路、射频收发器、flash存储器等多种模拟及数模混合集成电路中,并且是片上集成系统(SOC)芯片中不可或缺的部分,为整个芯片提供精确的电压参考点............

qq_50968231的博客 5万+

静态库和动态库的区别

这样一来,程序的可执行文件会比静态库生成的可执行文件小很多。但是与静态库相比,动态库的内存使用方式具有更好的空间和性能优势,因为多个程序可以共享同一个动态库,而不需要重复加载相同的库文件,从而减少了系统的内存占用。由于静态库的代码被打包进了可执行程序中,所以在程序运行时,静态库中的代码被复制到了程序使用的内存中,并一直驻留在内存中使用,因此不需要占用额外的内存空间。静态库的代码被打包成可执行程序的一部分,因此静态库的更新和维护需要重新进行编译和部署,才能让所有使用了该静态库的程序都能够得到更新的代码。

m0_56753665的博客 7019

重头开始学ROS(8)---LVI-SAM复现与实机部署Ubuntu20.04以及如何适配6轴imu

本文详细记录了在Ubuntu20.04环境下复现LVI-SLAM系统的过程,主要包含四个部分:源码编译、问题解决、数据录制和6轴IMU适配。在编译过程中遇到GTSAM、PCL版本、OpenCV路径等典型问题并给出解决方案;详细说明了ROS bag包的录制规范;针对6轴IMU硬件限制,提供了核心代码修改方案。文章为LVI-SLAM系统在非标准环境下的部署提供了实用参考,特别适合需要适配不同硬件配置的研究者。

qq_73991479的博客 1558

【网络】Ikuai中如何添加/更换虚拟机(图文)

Ikuai 添加虚拟机教程

qq_20623849的博客 6533

详谈静态库和动态库的区别

StaticLibrary.lib的大小为190KB,DynamicLibrary.lib的大小为3KB,静态库对应的lib文件叫静态库,动态库对应的lib文件叫【导入库】。动态库的好处是,不同的应用程序如果调用相同的库,那么在内存里只需要有一份该共享库的实例。Linux下使用静态库,只需要在编译的时候,指定静态库的搜索路径(-L选项)、指定静态库名(不需要lib前缀和.a后缀,-l选项)。如果引用的静态库不是在同一解决方案下的子工程,而是使用第三方提供的静态库lib和头文件,上面的方法设置不了。...

weixin_71478434的博客 1万+

在 Windows 系统下使用 VMware 安装 Ubuntu 24.04 LTS 系统

Ubuntu24.04桌面端官方下载:https://cn.ubuntu.com/download/desktop。

u014695938的博客 1万+

动态库、静态库编译测试:含静态库链接动态库、静态库,动态库链接静态库、动态库

本文的目的是测试各种类型库的编译后的使用效果,包括库又链接其他库的编译方法,使用方法,依赖性等。 太长不看版:请跳至文章最后的总结对比表。 一。内容包含: ①静态库libbb.a依赖静态库libaa.a的测试; ②静态库libbb.a依赖动态库libaa.so的测试; ③动态库libbb.so依赖静态库libaa.a的测试; ④动态库libbb.so依赖动态库libaa.so的测试; ...

AmyAndTommy的博客 6668

PreScan快速入门到精通第二十一讲驾驶员模型之驾驶员在环

请注意,操纵杆的输出角度是以度为单位的,而方向盘执行器希望其输入是以弧度为单位的。当选择一个支持的方向盘时,PreScan会自动将按钮映射到正确的功能上(如换挡),并设置轴的正确范围(如转向角度)。该系统中的所有其他组件都是为了提供正确的按钮映射,并为所选的方向盘设置正确的范围。对于每一个额外连接的控制器,它们的ID会增加一个,例如第二个控制器的设备ID为1,第三个控制器的设备ID为2,等等。由于所有的方向盘最初放在编译表上的设备ID都是0,所以用户应该先进行正确的调整,将每个控制器设置为正确的设备ID。.

小明师兄的博客 1423

Vibe Draw:AI实现2D草图转3D建模,开源免费的设计师宝藏软件!

AI实现2D草图转3D建模,开源免费,设计师进来看一下?

Code_流苏:在代码中寻诗意,在实践中觅真知 2150

动态库和静态库

​静态库和动态库的介绍以及制作

caiji0169的博客 1751

18-XLINX的XC7A100T的BANK0引脚说明

DXP_0和 DXN_0是纯输入引脚,Xilinx Artix-7 FPGA 内部集成的一个片上监控模数转换器​ 的差分模拟输入对,模数转换器​的模拟信号输入端,将外部的模拟电压​ 采样并转换为内部的数字值,是一个单向的信号采集过程。它是与 VCCADC配对的关键引脚,共同为内部的精密模数转换器提供一个纯净、安静、独立的参考地平面。多FPGA同步配置: 在多FPGA系统中,主FPGA配置完成后,可以拉低从FPGA的 INIT_B使其等待,等所有FPGA都准备好后,再同时释放,实现同步启动。

weixin_44479192的博客 231

C++静态库与动态库

打开工程“属性面板”è”配置属性”è “C/C++”è” 常规”,在“附加包含目录”属性值中,键入DynamicMath.h 头文件所在目录的路径或浏览至该目录。打开工程“属性面板”è”配置属性”è “C/C++”è” 常规”,在“附加包含目录”属性值中,键入StaticMath.h。打开工程“属性面板”è”配置属性”è”常规”,配置类型选择静态库。l -l:指定链接时需要的动态库,编译器查找动态连接库时有隐含的命名规则,即在给出的名字前面加上lib,后面加上.a或.so来确定库的名称。

A19720252059的博客 1673

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【Linux】动态库、静态库

动态库与静态库相关内容

weixin_69380220的博客 1665

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

静态库和动态库

Linux环境高级编程

weixin_73053979的博客 1622

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上一篇: 数据结构之队列的实现
下一篇: 算法之冒泡排序
lm_123_456
博客等级 码龄11年 35粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值