静态库和动态库的区别

可执行文件

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

clang查看.png

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

静态库和动态库的区别

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

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

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

图解

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

静态库的制作

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别...
    吃瓜群众呀阅读 14,168评论 3 42
  • iOS专题2:静态库和动态库详解 动态库与静态库优缺点比较 静态库和动态库的framework长得不一样 fram...
    杨大虾阅读 3,146评论 0 0
  • 前言 1.静态库和动态库有什么异同? 静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。利用静态...
    Ly梦k阅读 12,761评论 3 18
  • 1、什么是库 库是共享程序代码的方式,一般分为静态库和动态库。 2、静态库与动态库的区别 静态库:链接时完整地拷贝...
    伯牙呀阅读 5,274评论 0 6
  • 仅以方便自己查阅记录前言1.静态库和动态库有什么异同?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗...
    190CM阅读 9,873评论 0 4

友情链接更多精彩内容