Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >静态库和共享库之间有什么区别?

静态库和共享库之间有什么区别?

提问于 2017-12-13 02:36:22
回答 2关注 0查看 1.3K

静态库和共享库有什么区别?

我使用Eclipse,有几个项目类型,包括静态库和共享库?静态库比共享库有优势吗?

回答 2

最爱开车啦

发布于 2017-12-13 04:22:13

简化:

静态链接:一个大的可执行文件

动态链接:一个小的可执行文件加上一个或多个库文件(Windows上的.dll文件,Linux上的.so或macOS上的.dylib)

MyLove

发布于 2017-12-13 04:21:36

共享库是.so(或Windows .dll或OS X .dylib)文件。所有与库相关的代码都在这个文件中,并且在运行时被程序使用。使用共享库的程序仅引用在共享库中使用的代码。

静态库是.a(或Windows .lib)文件。所有与库相关的代码都在这个文件中,并且在编译时直接链接到程序中。使用静态库的程序从静态库中获取使用的代码的副本,并将其作为程序的一部分。[Windows也有用于引用.dll文件的.lib文件,但它们的作用与第一个文件相同]。

每种方法都有优点和缺点。

共享库减少了每个使用该库的程序中重复的代码量,从而保持二进制文件的小型化。它也允许你用一个功能相同的替换共享对象,但是可能增加了性能,而不需要重新编译使用它的程序。然而,共享库的执行功能和运行时的加载成本只需很小的额外成本,因为库中的所有符号都需要连接到它们所使用的东西上。另外,共享库可以在运行时加载到应用程序中,这是实现二进制插件系统的一般机制。

静态库会增加二进制文件的整体大小,但这意味着您不需要携带正在使用的库的副本。由于代码在编译时连接,所以没有任何额外的运行时加载成本。代码就在那里。

就个人而言,我更喜欢共享库,但是在需要确保二进制文件没有很多可能难以满足的外部依赖性(如特定版本的C ++标准库或特定版本的Boost C ++库)时使用静态库。

和开发者交流更多问题细节吧,去 写回答
相关文章
Linux共享库、静态库、动态库详解
1. 介绍 使用GNU的工具我们如何在Linux下创建自己的程序函数库?一个“程序函数库”简单的说就是一个文件包含了一些编译好的代码和数据,这些编译好的代码和数据可以在事后供其他的程
sunsky
2020/08/20
9.2K0
Linux共享库、静态库、动态库详解
Linux的静态库和共享库详解及实例
       库的本质上是一个可执行的二进制文件,但是它并不能独立的执行。简单的来说,就相当于一个仓库,把你已经写好的功能函数放到库中,然后后续需要时通过正确的接口去使用相应的功能,当然可以把库分享给别人也很方便。在Linux下分为静态库和共享库(也叫动态库),当然Windows下也有静态库(.lib)和动态库(.dll),这里主要是讲解Linux下的静态库和共享库,以及它们的简单实现。
Ch_Zaqdt
2020/02/24
3.4K0
Linux的静态库和共享库详解及实例
Linux基础——gcc编译、静态库与动态库(共享库)
1、静态库的命名格式 lib + 库的名字 + .a 例:libMyTest.a (MyTest为静态库的名字)
全栈程序员站长
2022/11/10
9K0
Linux基础——gcc编译、静态库与动态库(共享库)
静态库和动态库
库的基本概念: windows下静态库的创建和使用 1.静态库的创建 步骤: 总结:
大忽悠爱学习
2021/03/04
1.6K0
静态库和动态库
[x]静态库 .a : 从静态库中拷贝 对应的函数定义,即使对应机器上没有这个 库,也能运行;
谢晓曦
2021/08/09
1.7K0
linux中的两种共享代码方式静态库和动态库
随着软件开发的发展,人们发现很多应用的代码是相同的,也就是说这些代码可以被共享,因此,人们提出了静态库和动态库两种方案来解决代码共享的问题。
程序那些事儿
2023/03/07
1.2K0
linux中的两种共享代码方式静态库和动态库
静态库和动态库制作
我们在编写代码的时候经常用到已有的接口,他们是以库的形式提供给我们使用的,而常见形式有两种,一种常以 .a 为后缀,为静态库;另一种以 .so 为后缀,为动态库。所谓的静态、动态指的是链接的过程。
Gnep@97
2023/08/13
2930
静态库和动态库制作
【Linux】静态库和动态库
系统层面上有.和…硬链接指向目录。假设我们是超级用户,允许给目录建立硬链接,给根目录建立硬链接,从根目录开始查找,当查找硬链接的时候就是根目录,这时候递归式查找,形成了环路查找,最后导致软件无法正常进行查找工作!所以不允许普通用户给目录建立硬链接。
平凡的人1
2023/10/15
6020
【Linux】静态库和动态库
静态库和动态库的区别
动态库的后缀,在 Windows 上是 .dll,linux 上是 .so,在 OSX 上是 .dylib。
ClearSeve
2022/02/10
1.7K0
静态库和动态库的使用
库是一种可执行的二进制文件,是编译好的代码。使用库可以提高开发效率。在 Linux 下有静态库和动态库。
Jasonangel
2022/05/24
1.1K0
静态库和动态库的使用
静态库和动态库的区别
什么是库? 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。 所谓静态、动态是指链接。回顾一下,将一个程序编译
233333
2018/03/07
2.1K0
静态库和动态库的区别
解读 | IaaS、PaaS和SaaS之间有什么区别?
随着时间的推移,云计算技术对于组织来说变得越来越重要。在大量的应用程序运行在不同的云模型时,组织需要做一些工作来检查这些解决方案是否更能满足其需求。组织需要确定其投资组合中的每个应用程序都在为自己和最终用户而使用正确的云模型。
CloudBest
2020/09/30
2K0
解读 | IaaS、PaaS和SaaS之间有什么区别?
【普】静态IP和动态IP有什么区别?
    动态IP和静态IP的区别在于:动态IP需要在连接网络时自动获取IP地址以供用户正常上网,而静态IP是ISP在装机时分配给用户的IP地址,可以直接连接上网,不需要获取IP地址。
青果云小潘
2019/10/29
2.4K0
【普】静态IP和动态IP有什么区别?
【科普】静态IP和动态IP有什么区别?
动态IP和静态IP的区别在于:动态IP需要在连接网络时自动获取IP地址以供用户正常上网,而静态IP是ISP在装机时分配给用户的IP地址,可以直接连接上网,不需要获取IP地址。
青果网络
2020/05/15
3.3K0
【科普】静态IP和动态IP有什么区别?
动态库与静态库优缺点比较分析_c静态库和动态库的区别
我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期的代码维护。我们可以把他们制作成相应的功能函数,使用时直接调用就会很方便,还可以进行后期的功能升级。
全栈程序员站长
2022/11/11
3.3K0
库文件&静态库&动态库
库文件-百度百科 库、动态库和静态库(.dll,.so,.lib,.a)知乎 浅谈静态库和动态库_知乎
用户10551528
2023/05/09
1.6K0
库文件&静态库&动态库
c++和c语言之间有什么区别
  C语言是一种古老而又经久不衰的计算机程序设计语言,大约诞生于上个世纪60年代。由于它的设计有很多优点,多年以来深受广大程序设计人员的喜爱,并逐渐 淘汰了很多其它程序设计语言。我们平时使用的大多数软件都是用C语言开发的。
诸葛青云
2019/11/11
2.4K0
c++和c语言之间有什么区别
什么是静态代理和动态代理_静态ip和动态ip有什么区别
代理模式是常用的Java设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。按照代理类的创建时期,代理类可分为两种。
全栈程序员站长
2022/10/02
2.1K0
什么是静态代理和动态代理_静态ip和动态ip有什么区别
小心两个共享库共用同一个静态库
小心两个共享库共用同一个静态库.pdf 注:以下内容仅针对Linux/GCC环境,不涵盖Windows,包括Cygwin环境。 下载测试代码:
一见
2018/08/07
2.8K0
小心两个共享库共用同一个静态库
点击加载更多

相似问题

“STL”和“C ++标准库”有什么区别?

2894

GNOME 和 Unity 之间有什么区别?

0139

Select和SelectMany之间有什么区别?

21.2K

人脸核身权威库和自传照片有什么区别?

1590

GUID和UUID之间有什么区别吗?

25.8K
相关问答用户
萃橙科技 | 合伙人擅长4个领域
高级数据分析师擅长5个领域
腾讯 | 技术专家擅长2个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档