我们已 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:存放对应的头文件信息。