静态库和动态库的区别

2018-10-18  本文已影响0人  hallfrita

可执行文件

源代码是如何编译成可执行文件的呢?我们可以通过clang -ccc-print-phase main.m命令查看

clang查看.png

可见将程序编译成可执行文件的步骤:
源代码 --> 预处理器 --> 编译器 --> 汇编 --> 机器码 --> 链接 --> 可执行文件

静态库和动态库的区别

库:库就是写好的、现有的、成熟的程序代码的集合。

静态库:链接时会被完整的复制到可执行文件中,被多次使用就有多份拷贝。

动态库:链接时不复制,程序运行时由系统动态加载到内存,系统只加载一次,多个程序共用,节省内存。

图解

静态库和动态库的区别.png

静态库的制作

静态库主要有两种形式:.a 和 .framework
动态库的形式主要有:.tdb 、.dylib、.framework 前两种还没见过,最常见的就是.framework的动态库
静态库制作方式请看:https://www.jianshu.com/p/5218d0ea26c9

注意:swift不支持静态库,只支持动态库

上一篇 下一篇

猜你喜欢

热点阅读