美文网首页
Xcode编译过程

Xcode编译过程

作者: 烛龙一现 | 来源:发表于2019-07-22 23:28 被阅读0次

Xcode编译过程

打包过程

  • 源码编译
  • 静态库链接
  • 资源编译、优化、导入
  • 配置文件生成
  • 签名打包

Xcode 遇到的错误

  • 语法错误
  • 找不到头文件
  • 找不到声明
  • 重复符号
  • 缺少符号

配置类型

  • infos 项目相关信息
    • plist
    • entitlements
  • build phases 编译各阶段配置
    • Target Dependencies
    • Compile Sources
    • Link with Libraries
    • Run Script
  • build settings编译细节
    • Compiler
    • Linker
    • Assets
    • Packaging

编译工具

  • clang 编译源文件
    • clang -x objective -arch x86_64 -c *.m -o *.o
  • libtool
  • codesign

LLVM

Clang基于LLVM的C语言前端

屏幕快照 2019-07-22 下午11.15.11.png

源代码 -> 语言前端 -> 优化器 -> 后端 -> 机器码

  • 语言前端翻译成统一中间码,进行优化操作
  • 后端把中间码根据不同架构翻译成不同机器识别的机器码

编译器语言前端编译过程

  • 预处理
  • 词法分析Lexer
  • 语法分析,生成AST语法树
  • 中间代码生成

Clang组成部分

  • 预处理: 引入头文件、执行预处理指令、宏定义展开、去除注释
    • clang -E *.m 进行预处理
  • 词法解析:代码句子处理成单词
  • clang -fsyntax-only -fmodules -Xclang -dump-tokens *.m
  • 语法分析: 单词组成语法树
    • clang -fsyntax-only -fmodules -Xclang -ast-dump *.m
  • 中间代码即为bitcode

Link

  • 解决依赖
  • 确定地址引用
  • Mach-O结构组装
  • 生成可执行文件

Clang API

  • LibClang 拿结果,语言封装,作统计

  • Clang Plugins 插件,解析编译过程


    屏幕快照 2019-07-22 下午11.19.44.png
  • LibTooling 独立运行文件,可单独调试

可以用来做什么

  • 定义规范、静态检查
  • 错误、警告自动改正
  • 自动代码l转换
  • 代码统计和优化

Xcode只是一个壳子

相关文章

  • Xcode编译过程

    Xcode编译过程 打包过程 源码编译 静态库链接 资源编译、优化、导入 配置文件生成 签名打包 Xcode 遇到...

  • Xcode编译原理

    Xcode编译原理 1.xcode 编译的过程 源文件.c --> 编译 --> 目标文件.o --> 链接 --...

  • Xcode 编译过程

    编译过程分为四个步骤 1.预处理(Pre-process) 把宏替换删除注释展开头文件产生 .i 文件 2.编译 ...

  • xcode编译过程

    在 iOS 开发的过程中,Xcode 为我们提供了非常完善的编译能力,正常情况下,我们只需要 Command + ...

  • 浅析XCode编译过程

    作为iOS开发,XCode一天编译几十上百遍是常事。cmd+B,两指一按,哗啦啦的就开始build了。但是,我们是...

  • Xcode的编译过程

    今天我们来对iOS开发的常用工具Xcode的编译流程进行一个简单的了解和分析 OC:source code > C...

  • iOS编译速度提升

    iOS编译速度提升 Xcode编译过程 预编译pch文件(如果有) 编译各种资源文件 copy静态资源 compi...

  • 2021-10-04 iOS 编译

    应用编译的过程大致为:预处理、编译、汇编、链接等过程。Xcode将这些过程包装为一个Commond+B,其中Xco...

  • iOS面试题整理自用(二)

    聊聊Xcode 中的编译过程 基本的编译过程分为四个步骤:预处理(Pre-process):把宏替换,删除注释,展...

  • 入门 Clang 插件

    Clang 插件能够控制编译过程,可以加 warning,或者直接中断编译提示错误。本文将讲述如何使用 Xcode...

网友评论

      本文标题:Xcode编译过程

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