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,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。