动态库:
- 以 .dylib 或 .framework 后缀结尾
- 目标程序中只会存储指向动态库的引用,运行时,动态库才会被真正加载进来
- 共享库,不会影响目标程序的体积
- 我们随时对库进行替换,而不需要重新编译代码
- 动态载入会带来一部分 性能损失,使用动态库也会使得程序 依赖于外部环境。如果环境缺少动态库或者库的版本不正确,就会导致程序无法运行
静态库
- 以 .a 或 .framework 后缀结尾
- 在编译的时候会被直接拷贝一份,复制到目标程序里
- 目标程序没有外部依赖
- 目标程序的体积增大
framework
- Framework 实际上是一种打包方式,将库的二进制文件,头文件和有关的资源文件打包到一起,方便管理和分发,和静态库动态库的本质是没有什么关系
参考博客: