静态库和共享库之间的区别

在编程上下文库中是一种具有某种代码的东西,这些代码已经过预编译,可以在任何程序中重新使用以实现某些特定功能或特性。

现在,根据该代码库的执行和存储,将其分为两种类型,即静态库和共享库。

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

序号要点
静态库共享库
1定义

静态库是一个库,其中执行文件的所有代码都在一个可执行文件中,该文件通过编译器、链接器或绑定器复制到目标应用程序中,从而生成一个目标文件和一个独立的可执行文件。

另一方面,共享库是在目标程序中仅提及库地址的库,而库的所有功能和代码都位于内存空间中的特殊位置,并且每个程序都可以访问它们,而不必具有多个副本他们。
2导入

如上 ,静态库在编译时在调用程序中解析,并由编译器、链接器或绑定器复制到目标应用程序中。

共享库是在操作系统执行目标程序时导入的。
3大小

静态库很大,因为外部程序是在可执行文件中构建的。

在其他共享库上,它要小得多,因为在执行时只有一个动态库副本保留在内存中,否则它的位置是远程的。
4汇编

对于静态库,如果对外部文件应用了任何更改,则需要重新编译。

另一方面,对于共享库,无需重新编译可执行文件。
5性能

静态库的执行时间较长,因为每次执行时都会加载到内存中。

虽然共享库更快,因为共享库代码已在内存中。
6兼容性

静态库的执行时间较长,因为每次执行时都会加载到内存中。

另一方面,如果共享库存在兼容性问题,因为如果从系统中删除了库,则目标程序将无法工作。