美文网首页
静态库与动态库的区别

静态库与动态库的区别

作者: liang1030 | 来源:发表于2024-11-06 10:03 被阅读0次

静态库和动态库是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库;而动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在。

静态库:链接时完整的拷贝至可执行文件中,被多次使用就有多份冗余拷贝。
动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序使用,系统只加载一次,多个程序共用,节省内存。

静态链接:静态链接是指将多个目标文件合并为一个可执行文件,直观感受就是将所有目标文件的段合并。需要注意的是可执行文件和目标文件的结构基本一致,不同的是是否“可执行”。

3,总结:

同一个静态库在不同程序中使用时,每一个程序中都得导入一次,打包时也被打包进去,形成一个程序。而动态库在不同程序中,打包时并没有被打包进去,只在程序运行使用时,才链接载入(如系统的框架如UIKit、Foundation等),所以程序体积会小很多,但是苹果不让使用自己的动态库,否则审核就无法通过。

参考链接:https://www.jianshu.com/p/77b8bd950aa7
https://www.jianshu.com/p/fa4d32bf7700

相关文章

网友评论

      本文标题:静态库与动态库的区别

      本文链接:https://www.haomeiwen.com/subject/hattjjtx.html