动态库和静态库的区别和优缺点
我的笔记 · 我的笔记 · 283 字
静态库有什么问题?
- 浪费空间。
- 库更新以后需要重新编译:库是被复制到可执行文件中去了,如果某个库更新了,则与它相关的所有可执行文件都需要重新编译。
为了解决以上问题,可以使用动态库:
- 解决浪费空间:动态库在编译时不会被载入,而是在程序运行时才载入。此时如果不同的应用程序调用相同的库,那么在内存中只需要一份该库的实例。
- 解决全量更新问题:动态库修改后不用修改重新编译生成可执行文件,增量更新。
动态库的特点:
- 动态库只有一份,可以实现进程之间的资源共享。(因此动态库也称为共享库)
- 对库函数的链接推迟到程序运行时。
- 程序升级变得简单。
- 可以在链接载入时完全由程序员在程序代码中控制。