dynamic - DLL 和 LIB 文件

标签 dynamic dll compiler-construction static linker

DLL 和 LIB 文件有什么区别? DLL 文件内有什么,LIB 文件内有什么? 创建可执行文件是否需要 DLL 和 LIB 文件?

最佳答案

DLL 文件是最终的构建产品,即您安装在客户计算机上的文件。它与 EXE 文件非常相似,结构相同,但可以按需加载到另一个程序中。

LIB 文件用于构建您的程序,它仅存在于您的构建计算机上,并且您不会发布它。有两种。静态链接库是一包 .obj 文件,收集到一个文件中。当链接器需要解析外部标识符时,它会从文件中选取任何代码块。

但与 DLL 更相关的是,LIB 文件也可以是导入库。它是一个简单的小文件,其中包含 DLL 的名称以及 DLL 导出的所有函数的列表。当您构建使用 DLL 的程序时,您需要将其提供给链接器,以便它知道外部标识符实际上是 DLL 导出的函数。链接器使用导入库将条目添加到 EXE 的导入表中。然后 Windows 在运行时使用它来确定需要加载哪些 DLL 来运行程序。

关于dynamic - DLL 和 LIB 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274033/

相关文章:

jquery - 如何根据 iframe 内的动态内容更改 iframe 的高度?

c# - 你如何将一个扁平的点状属性列表转换为一个构造的对象?

c++ - 从非托管 C++ 创建 DLL

c++ - 无法注册 DLL

compiler-construction - 在字节码编译器中计算跳转地址的智能解决方案?

c++ - 验证数学方程 C++

c++ - 在 linux 中,如何判断我是链接到静态库还是动态库?

C++调用DLL函数

c++ - 使用参数优化编译器

haskell - 在 Haskell 中,如何在 Dynamic TypeRef 上做一个 case 语句