.dll.lib.dll.a 的区别

Posted 想文艺一点的程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.dll.lib.dll.a 的区别相关的知识,希望对你有一定的参考价值。

我们已 ffmpeg 的动态链接库为例,描述一下这三个文件的作用:

目录整体结构:

分析 bin 目录:

  • ffmpeg、ffplay、ffprobe 之所以这么小,是因为他们运行的时候会调用 .dll 文件当中的代码。
  • dll:真正存放函数体的地方。

分析 lib 目录:

  • 里面有三种文件后缀分别为:.lib、.def、.dll.a 。
  • .def:暂时还不太清楚。
  • .lib:用于MSVC编译器中 (MSVC 微软自己的编译器)
  • .dll.a:用于MinGW编译器中(MinGW gcc/g++,MinGW则是指Minimalist GNU for Windows的缩写)

这三个文件里面并不存放真正的函数代码本体
只是包含了函数所在的DLL文件和文件中 函数位置的信息(索引),函数实现代码由运行时加载在进程空间中的DLL提供


include:存放对应的头文件信息。

以上是关于.dll.lib.dll.a 的区别的主要内容,如果未能解决你的问题,请参考以下文章

这两个代码片段之间有区别吗?如果有,那又如何? [复制]

jquery 对象的 heightinnerHeightouterHeight 的区别以及DOM 元素的 clientHeightoffsetHeightscrollHeightoffset(代码片段

字符串插值和片段之间有啥显着区别吗?

jacript var let const 区别

Python snippet(代码片段)

活动和片段之间有啥区别?