静态链接库与动态链接库

时间:2014-08-12 21:53:54   收藏:0   阅读:380

  静态链接库与动态链接库都是共享代码的方式。

静态链接库(lib): 在程序执行之前完成所有的组装工作,生成一个可执行的目标文件(EXE文件)。

  静态库的两个特点:

  1. 链接后产生的可执行文件包含了所有需要调用的函数的代码,因此占用磁盘空间较大。
  2. 如果有多个(调用相同库函数的)进程在内存中同时运行,内存中就存有多份相同的库函数代码,因此占用内存空间较多。

动态链接库(dll&lib): 在程序装载内存的时候才真正的把库函数代码链接进行确定它们的地址,并且就算有几个程序同时运行,内存也只存在一份函数代码。动态库的代码必须满足这样一种条件:能够被加载到不同进程的不同地址。根据载入程序何时确定动态代码的逻辑地址,可以把动态装载分为两类:

 

静态链接库和动态链接库区别:

  1. 静态链接库在程序执行之前就完成了库的装载,而动态链接库是在程序执行过程中加载。
  2. 当有多处需要同一函数时,动态链接库只需要一份拷贝即可,而静态链接库则需要多份拷贝。
  3. 静态链接库不能再包含其他的静态链接库或动态链接库,而动态链接库还可以包含其他的静态链接库或动态链接库。
  4. 如果改变库函数,包含静态链接库的程序需要重新链接,而包含动态链接库的程序则不需要,因而极大地提高了可维护性和可扩展性。

 

静态链接库与动态链接库,布布扣,bubuko.com

原文:http://www.cnblogs.com/PursueFreedom/p/3908409.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!