美文网首页
14期_iOS_编译过程和静态库动态库

14期_iOS_编译过程和静态库动态库

作者: 萧修 | 来源:发表于2023-08-16 01:00 被阅读0次

    再进行command+B/R进行调试,Xcode做了一下4个步骤

    预处理(prepressing)、编译(Compilation)、汇编(Assembly)、链接(Linking)

    • 预编译:处理代码中#开头的预编译指令,比如删除#define并展开宏定义,并将#include包含的文件插入到该指令位置
    #define K_Weakself __weak typeof(self) weakSelf = self;
    
    • 编译:对预编译处理过的文件进行词法分析,语法分析和语义分析,并进行源码优化,然后生成汇编代码
    • 汇编:通过汇编将汇编代码转换为机器可以执行执行的指令,并生成目标文件.o文件
    • 链接:将目标文件链接为可执行文件,这一过程,链接器将不同的目标文件链接起来,比如UIKit和Foundation中的方法和变量,跟目标文件不在一个地方,需要链接器将它们和代码链接起来

    静态库:
    指链接时完整拷贝到可执行文件,多次使用多次拷贝,造成冗余,使包变得更大。如.a、.lib都是静态库

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

    相关文章

      网友评论

          本文标题:14期_iOS_编译过程和静态库动态库

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