美文网首页
关于BitCode

关于BitCode

作者: 码农耕 | 来源:发表于2019-08-01 15:34 被阅读0次

1.是什么?

苹果在WWDC 2015大会上引入了bitcode,随后在Xcode7中添加了在二进制中嵌入bitcode(Enable Bitcode)的功能,并且默认设置为开启状态。

bitcode是由LLVM引入的一种中间代码(Intermediate Representation,简称IR),它是源代码被编译为二进制机器码过程中的中间表示形态,它既不是源代码,也不是机器码。从代码组织结构上看它比较接近机器码,但是在函数和指令层面使用了很多高级语言的特性。

编译过程
前端(Frontend),负责把各种类型的源代码编译为中间表示,也就是bitcode,在LLVM体系内,不同的语言有不同的编译器前端,最常见的如clang负责c/c++/oc的编译,flang负责fortran的编译,swiftc负责swift的编译等等
优化(Optimizer),负责对bitcode进行各种类型的优化,将bitcode代码进行一些逻辑等价的转换,使得代码的执行效率更高,体积更小,比如DeadStrip/SimplifyCFG
后端(Backend),也叫CodeGenerator,负责把优化后的bitcode编译为指定目标架构的机器码,比如X86Backend负责把bitcode编译为x86指令集的机器码

2.使用和遇到的问题

Enable Bitcode:设置YES Or NO

或者使用Other linker flags:(编译链接参数)
-fembed-bitcode 打包出bitcode
-fembed-bitcode-marker 假装打包出了bitcode,但真实时bitcode使用一个字节的占位符 0x00

3.bitcode的兼容性
bitcode的格式目前是一直在变化的,并且无法向前兼容,举例来说Xcode8的编译器无法读取并解析xcode9产生的bitcode。

参考链接:https://www.jianshu.com/p/0db01ec099c0

相关文章

  • Xcode 错误集锦

    1、关于BitCode的:BitCode是iOS 9 SDK出来的关于APP瘦身的一个特性,提交 Bitcode ...

  • 关于bitcode

    Bitcode适配指南 http://www.cocoachina.com/ios/20151125/14432....

  • 关于Bitcode

    官方定义Bitcode is an intermediate representationof a compile...

  • 关于BitCode

    1.是什么? 苹果在WWDC 2015大会上引入了bitcode,随后在Xcode7中添加了在二进制中嵌入bitc...

  • iOS bitcode

    关于iOS bitcode 的总结 导出的静态库.a或是Framework,需要两个条件 1.设置bitcode ...

  • bitcode

    关于bitcode Bitcode类似于一个中间码,被上传到applestore之后,苹果会根据下载应用的用户的手...

  • iOS之bitcode

    一、了解bitcode 首先看下bitcode官方定义: Bitcode is an intermediate r...

  • iOS9适配:Bitcode

    Bitcode简介 Bitcode is an intermediate representation of a ...

  • 检测.a或.framework是否支持bitcode

    检测.a是否支持bitcode 检测.framework是否支持bitcode 返回结果有__bitcode字段说...

  • iOS高级强化--006:Mach-O体积优化

    Bitcode 什么是Bitcode?Bitcode是被编译程序的一种中间形式的代码。包含Bitcode并上传到A...

网友评论

      本文标题:关于BitCode

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