您的位置:首页 > 其它

obj, lib, dll, exe

2008-01-11 09:18 281 查看
 lib是和dll对应的。  
  lib是静态的库文件,dll是动态的库文件。  
  所谓静态就是link的时候把里面需要的东西抽取出来安排到你的exe文件中,以后运行  
  你的exe的时候不再需要lib。  
  所谓动态就是exe运行的时候依赖于dll里面提供的功能,没有这个dll,你的exe无法运  
  行。  
   
  lib,   dll,   exe都算是最终的目标文件,是最终产物。而c/c++属于源代码。源代码和最终  
  目标文件中过渡的就是中间代码obj,实际上之所以需要中间代码,是你不可能一次得到目  
  标文件。比如说一个exe需要很多的cpp文件生成。而编译器一次只能编译一个cpp文件。这  
  样编译器编译好一个cpp以后会将其编译成obj,当所有必须要的cpp都编译成obj以后,再统  
  一link成所需要的exe,应该说缺少任意一个obj都会导致exe的链接失败。

1.obj里存的是编译后的代码跟数据,并且有名称,所以在连接时会出现未解决的外部符号一说。当连成exe后便不存在名称的概念了,只有地址。lib就是一堆obj的组合。  
  2.理论上可以,但实际中通常用lib。  
  3.编译器会默认链接一些常用的库,其它的需要你自己指定。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  exe dll 编译器