ios llvm and clang build tools

1. 使用 libclan g或 clang 插件 包括( libclang 和  Clangkit)  

备注:

 Clangkit,它是基于 clang 提供的功能,用 Objective-C 进行封装的一个库。

libclang 提供的 API 非常简单,可以对 C 和 clang 做桥接,并可以用它对所有的源码做分析处理

2. 自定义分析器

备注:

按照 Tutorial for building tools using LibTooling 中的说明去构造 LLVM ,clang 以及 clan g的附加工具 

3. clang其它特性

备注:

clang还有许多其他的用途。比如,可以写编译器插件(例如,类似上面的检查器例子)并且动态的加载到编译器中。虽然我没有亲自实验过,但是我觉得在 Xcode 中应该是可行的。再比如,也可以通过编写 clang 插件来自定义代码样式(具体可以参见 编译过程

4. 延伸阅读

备注:

5.编译过程:

备注:

预处理
? 符号化 (Tokenization)
? 宏定义的展开
? #include 的展开
语法和语义分析
? 将符号化后的内容转化为一棵解析树 (parse tree)
? 解析树做语义分析
? 输出一棵抽象语法树(Abstract Syntax Tree* (AST))
生成代码和优化
? 将 AST 转换为更低级的中间码 (LLVM IR)
? 对生成的中间码做优化
? 生成特定目标代码
? 输出汇编代码
汇编器
? 将汇编代码转换为目标对象文件。
链接器
? 将多个目标对象文件合并为一个可执行文件 (或者一个动态库)

期待下期更新。

 

 

ios llvm and clang build tools,布布扣,bubuko.com

ios llvm and clang build tools

上一篇:8分钟学会使用AutoMapper


下一篇:[Testing]十二个移动App云测试服务盘点