前端之家收集整理的这篇文章主要介绍了
为什么C链接器在构建期间需要库文件,即使我是动态链接?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
编译器不知道动态
链接,它只是通过它的原型知道一个
函数存在.
链接器需要lib
文件来解析符号. DLL的lib包含其他信息,例如
函数所在的DLL以及它们如何导出(按
名称等等).DLL的lib
文件比包含完整对象
代码的lib
文件包含的信息少得多 – libcmmt我的系统上的.lib是19.2 MB,但是msvcrt.lib是“只有”2.6 MB.
请注意,此编译/链接模型在这一点上已经接近40岁,并且在大多数平台之前动态链接.如果今天被设计,动态链接将是一流的公民(例如,在.NET中,每个程序集都有丰富的元数据描述它的出口,因此您不需要单独的头文件和库).
原文链接:https://www.f2er.com/c/112908.html