动态链接库-共享对象-共享库-ShareObject-SO-dll
梗概:
- 其实就相当于程序的依赖模块, 用来被其他模块或可执行程序引用
- 相对的是静态链接库
- Linux下的拓展名为so,windows下的拓展名为dll
- Dynamic Link Library属于运行时库
- DLL对外暴露的接口遵循某种调用约定
- 函数的话,通常是cdecl
适用范围
- C语言
实例:
概念
- 用C语言编译出来的应用程序
main.exe
和main2.exe
,都需要依赖动态链接库lib.dll
- 当运行
main.exe
的时候,lib.dll
就会加载到内存中,供main.exe
调用 - 当再同时运行
main2.exe
时,因为lib.dll
已经加载到内存中了,所以直接和main.exe
共享同一个lib.dll
动态链接库