静态库VS动态库
前言
很多概念表达没有直接对比,我现在将使用表格的方式对比静态库和动态库的区别。
区别 | 静态库 | 动态库 |
---|---|---|
拓展名 | 一般为a | 一般为so |
共享 | 谁用谁拿,自己编译 | 多个应用程序可以使用同一个动态库 |
内存使用 | 如果多个应用程序使用的话,会被装载多次,浪费内存 | 启动多个应用程序的时候,只需要将动态库加载到内存一次即可 |
变更影响 | 静态函数库改变了,那么你的程序必须重新编译 | 动态函数库的改变并不影响你的程序,所以动态函数库的升级比较方便 |
链接方法 | #pragma comment(lib, "test.lib") | :LoadLibrary() /GetProcessAddress() 和FreeLibrary() , |
概念/加载方式 | 编译时期(compile time)完成,程序 在运行 时,与函数库再无瓜葛,因为所有需要的函数已拷贝到自己门下。所以这些函数库被成为静态库(static libaray) | 直到真正调用动态库代码时,载入程序才计算(被调用的那部分)动态代码的逻辑地址,然后等到某个时候,程序又需要调用另外某块动态代码时,载入程序又去计算这部分代码的逻辑地址 |

本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。
- 上一篇: linux 、windows 缓存垃圾清理
- 下一篇: 001-vue 合并 mixins 注意事项
目录