静态库和共享库的区别


在编程环境中,库是指包含某种预编译代码的实体,这些代码可以被重用于任何程序,以实现特定的功能或特性。

现在,根据代码的执行和存储方式,库被分为两种类型:静态库和共享库。

以下是静态库和共享库之间的一些重要区别。

序号关键点静态库共享库
1定义静态库是指所有执行文件所需的代码都包含在一个可执行文件中,并且该文件会被编译器、链接器或绑定器复制到目标应用程序中,生成目标文件和独立的可执行文件。另一方面,共享库是指目标程序中仅包含库的地址,而库的所有函数和代码都位于内存空间的特定位置,每个程序都可以访问它们,而无需创建多个副本。
2导入如上所述,静态库在编译时在调用方中解析,并由编译器、链接器或绑定器复制到目标应用程序中。共享库由操作系统本身在目标程序执行时导入。
3大小静态库的大小较大,因为外部程序被构建到可执行文件中。另一方面,共享库的大小要小得多,因为在执行时内存中只保留一个动态库的副本,否则它的位置是远程的。
4编译对于静态库,如果对外部文件进行了任何更改,则需要重新编译。另一方面,对于共享库,无需重新编译可执行文件。
5性能静态库执行时间较长,因为每次执行时都需要加载到内存中。而共享库速度更快,因为共享库代码已在内存中。
6兼容性在静态库中,没有观察到兼容性问题。另一方面,在共享库的情况下,存在兼容性问题,因为如果库从系统中删除,目标程序将无法工作。

更新于: 2020年2月24日

3K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.