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

静态库和动态库的区别

作者: hallfrita | 来源:发表于2018-10-18 14:47 被阅读0次

    可执行文件

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

    clang查看.png

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

    静态库和动态库的区别

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

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

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

    图解

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

    静态库的制作

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

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

    相关文章

      网友评论

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

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