关于编译过程中生成的中间文件和库文件

        看到网上一些对库文件比较好的说法,把它整理一下:

        函数和数据被编译为机器码之后存入一个二进制文件中,在使用目标文件(obj)或者静态库(lib)时,链接器从目标文件或静态库中找到这些代表函数和数据的二进制码并把它们复制到EXE应用程序中,和其他模块组合起来从而生成最终可被执行的EXE文件。


     目标文件和静态库文件只是起到一个“二进制源”作用,当最终的EXE发布时,因为之前的目标文件和静态文件已经被包含在EXE里面了,所以无需同时发布它们。

     目标文件一般是C文件或其他编程语言文件编译而得的二进制代码,不用发布,但是静态库可发布给其他开发人员会环境使用。

    对于dll:它和静态库文件不同,dll只有在程序被执行的时候才会加载dll中的功能模块,程序开发时更常见的是开发这些dll,因为dll支持其他Windows下的编程语言,很好的避免了兼容问题,其次提供给第三方的dll都只是提供一些接口给他们使用,只要这些接口不变,开发人员可以只修改这些dll的功能模块,而不需要第三方去修改依存这些dll的功能模块,还有dll可以在同一个OS下可以共享给不同的程序,从而能可以减少应用程序可执行文件的大小,节省了空间。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值