什么叫静态库和动态库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么叫静态库和动态库相关的知识,希望对你有一定的参考价值。

参考技术A   静态库是指在应用中,有一些公共代码需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。这种库称为其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。

  动态库又称动态链接库英文为DLL,是指DynamicLinkLibrary 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数,函数的可执行代码

C语言里面的动态库和静态库

参考技术A 之所以成为【静态库】,是因为在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。因此对应的链接方式称为静态链接。
试想一下,静态库与汇编生成的目标文件一起链接为可执行文件,那么静态库必定跟.o文件格式相似。其实一个静态库可以简单看成是一组目标文件(.o/.obj文件)的集合,即很多目标文件经过压缩打包后形成的一个文件。静态库特点总结:

为什么需要动态库,其实也是静态库的特点导致。

动态库特点总结:

生成动态库

以上是关于什么叫静态库和动态库的主要内容,如果未能解决你的问题,请参考以下文章

动态库和静态库的区别

C语言里面的动态库和静态库

动态库和静态库的区别

关于动态库和静态库的问题。

Linux下的静态库和动态库

Linux下的动态库和静态库详解