Objective-C 和 Swift都是编译语言 编译语言在执行的时候,必须先通过编译器生成机器码 CPU执行机器码 LLVM 编译编译语言 LLVM 是一个模块化和可重用的编译器和工具链技术的集合 LLVM 核心库提供一个优化器,对流行的 CPU 做代码生成支持 Clang 是 LLVM 的子项 ...
分类:
移动开发 时间:
2018-07-10 01:18:35
阅读次数:
213
LLVM编译器架构 LLVM项目是一套工具的集合,它包括模块化、可复用的编译器及一些列工具链技术。 LLVM最开始是Low Level Virtual Machine的简称,但现在它并不是传统意义上的虚拟机。所以LLVM这个名字并非Low Level Virtual Machine的缩写,而是一个单 ...
分类:
其他好文 时间:
2018-06-17 16:08:22
阅读次数:
436
Xcode编译报错概述: clang: error: no such file or directory: 'CoreGraphics' 一般原因是链接库内容导入丢失,这种的排查下target - Build Phases - link banary with library基本能够解决 又或者是导 ...
分类:
移动开发 时间:
2018-06-15 01:06:12
阅读次数:
1113
寄存器 汇编指令栈栗子 逆向工程绕不过的一部分就是汇编指令的分析。我们iPhone里面用到的是ARM汇编,但是不同的设备也有差异,因CPU的架构不同。 从iPhone5s之后的苹果手机都是ARM64位操作系统了,所以我们直接从ARM64汇编指令开始。 寄存器 我们都知道CPU的典型构成中有寄存器、控 ...
分类:
其他好文 时间:
2018-06-01 00:16:05
阅读次数:
413
clang Clang是LLVM的前端,可以用来编译C,C++,ObjectiveC等语言。传统的编译器通常分为三个部分,前端(frontEnd),优化器(Optimizer)和后端(backEnd)。在编译过程中,前端主要负责词法和语法分析,将源代码转化为抽象语法树;优化器则是在前端的基础上,对得 ...
分类:
其他好文 时间:
2018-05-25 19:36:27
阅读次数:
179
额,一行命令搞定啊 make freebsd CC=clang && make install 花了我一晚上,问题是啥呢? 我在Makefile中压根没有看到CC的定义在哪儿,然后直接执行make freebsd的时候,告诉我gcc找不到。 我一想freebsd都不用gcc了,我总不能去为了lua装 ...
分类:
其他好文 时间:
2018-05-24 16:36:45
阅读次数:
301
上架AppStroe 被打回来了,原因是: Your app crashed on iPad running iOS 11.3.1 connected to an IPv6 network when we tapped on profile image. We have attached detai ...
分类:
移动开发 时间:
2018-05-23 10:59:51
阅读次数:
525
上一篇文章中对于block做了一个全面的剖析和理解,那么在OBjective—C的block使用中我们难免会用到以上几个关键字,其实对于__block上篇文章已经做了解释,这篇文章,我会做几个关键字的区别和总结,来加深认识和理解。 上篇文章知道 clang -rewrite-objc 可以将OC代码 ...
分类:
其他好文 时间:
2018-05-17 19:54:33
阅读次数:
284
首先,要在 【帮助】->【关于插件】中开启Beautifier插件功能 然后,在【工具】->【选项】中设置Clang Format的路径 注意,这里你的机器上需要安装LLVM。可以到https://llvm.org/下载LLVM文件,在/LLVM/bin/目录下会有clang-format.exe文 ...
分类:
编程语言 时间:
2018-05-12 18:20:50
阅读次数:
1844
考虑如下代码: S(1)构造了一次,是个无名的临时对象(暂且给它取名为tmp),然后传递给fun函数,s是另一个局部对象。因此程序应打印两次~S() called。(实测vs2015打印2次,gcc和clang中只打印一次) C++17开始,S(1)这个纯右值不一定要物化为tmp,意思是在这个程序中 ...
分类:
编程语言 时间:
2018-03-21 15:01:46
阅读次数:
233