iOS--clang

clang 读作 克朗

因为最近在看block,老看到有人用clang编译出来一堆乱七八糟的说是c++的代码,所以就好奇这是啥玩意儿

这东西在开发过程中应该用不到,我决定简单了解一下就行

苹果系统之前用的编译器是GCC,但是做GCC的那帮人不愿意帮苹果针对oc进行优化,毕竟那帮人是搞开源的,而苹果又老搞封闭,不买帐也正常

这时候克里斯搞出来一个llvm,然后苹果就把克里斯包养了,然后就为了oc进行了优化,结果就是出来了clang

一个比较好的clang介绍:

Clang ( 发音为 /klæŋ/) 是 LLVM 的一个编译器前端,它目前支持 C, C++, Objective-C 以及 Objective-C++ 等编程语言。Clang 对源程序进行词法分析和语义分析,并将分析结果转换为 Abstract Syntax Tree ( 抽象语法树 ) ,最后使用 LLVM 作为后端代码的生成器。 

我的理解就是,clang先对代码进行预编译,然后再交给llvm生成二进制语言

所以oc的代码经过clang编译之后是勉强能看懂的,而且可以从中看到一些内部的实现原理

 

 

我们在说到GCC的时候提到了GDB,说它能够纠错,我们也谈到Clang相比较GCC有更好的诊断纠错能力,相对应的,Clang下纠错工具就是LLDB。
GDB没有一个不错的GUI,默认只有命令行接口(CLI)可用,没那么亲合上手。虽然有几个前段程序为其补强,但还是差强人意。GDB的这个缺点在LLDB上没有,所以LLDB的一个优点就是有一个良好的GU。
这个lldb还是要好好学一下的

 

 

 

https://www.ibm.com/developerworks/cn/opensource/os-cn-clang/

这篇文章写的挺好的,可惜我看到他更新到2016.9月就不更新了,可能自己创业去了吧

https://www.ibm.com/developerworks/cn/opensource/os-cn-clang/

这篇文章是ibm的,关于clang的介绍写的很好

转载于:https://www.cnblogs.com/chebaodaren/p/9259325.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值