| 静态库 | 动态库 |
加载方式 | 链接器从静态库中提取所需的函数复制到可执行文件中,最后只要可执行文件既可以运行。 | 动态库中的链接在加载和运行时才会解析,所以可执行文件中不包括静态库中的函数,需要一起交给用户才能执行。 |
内存占用 | 可执行文件只从静态库中提取所需的部分。 | 需要全部加载到内存中。 |
文件数量 | 所有代码都包含在可执行文件中 | 分布在可执行文件和多个动态库文件中, |
速度 | 快 | 慢:通过指针在 过程链接表PLT中查找 |
碎片化 | 无 | 碎片化严重: |
可共享 | 不可共享:封装在内部 | 同时运行的多个程序可以共享 动态库。 |
替换 | 不支持 | 简单,直接替换动态库文件即可 |
插件化 | 不支持 | 好:可以为已有的程序制作插件。 |
评价 | 适合于对运行速度和内存要求高的地方, | 多个程序共享调用,可替换 |
动态库与静态库的对比
最新推荐文章于 2021-05-19 09:44:29 发布