转:区分.lib .dll .obj .a .so .o

本文转自

http://www.cnblogs.com/chio/archive/2007/09/19/897868.html

DLL:  
  动态链接库   (DLL)   是作为共享函数库的可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个   DLL   中,该   DLL   包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL   还有助于共享数据和资源。多个应用程序可同时访问内存中单个   DLL   副本的内容。 
  
    obj:是CPP对应的二进制代码格式,是未经重定位的!  
  lib:是若干个obj的集合,本质与obj相同!   
LIB   创建标准库、导入库和导出文件,在生成   32   位程序时可将它们与   LINK   一起使用。LIB   从命令提示运行。  
   
  可在下列几种模式下使用   LIB:    
   
  生成或修改   COFF   库    
  将成员对象提取到文件中    
  创建导出文件和导入库    
  这些模式是互斥的;每次只能以一种模式使用   LIB。

  dll:是可实际运行的二进制代码,有定位代码的!  
  h:是头文件,也可算是源代码,因为当CPP中用#include时,会把包含的文件的内容在CPP中

扩展开!
  动态链接与静态链接的不同之处在于它允许可执行模块(.dll   文件或   .exe   文件)仅包含在运行时定位   DLL   函数的可执行代码所需的信息。在静态链接中,链接器从静态链接库获取所有被引用的函数,并将库同代码一起放到可执行文件中。  
   
  使用动态链接代替静态链接有若干优点。DLL   节省内存,减少交换操作,节省磁盘空间,更易于升级,提供售后支持,提供扩展   MFC   库类的机制,支持多语言程序,并使国际版本的创建轻松完成。

  • .a,静态库文件。使用静态库将会把所有的库代码引入程序,占用更多的磁盘空间和内存空间,所以一般建议使用共享库。

  • .so,共享库文件。使用共享库的程序不包含库代码,只在程序运行才调用共享库中的代码。

  • .o 对象文件

posted @ 2013-07-29 13:15  一杯红茶  阅读(233)  评论(0编辑  收藏  举报