那么上次提到了怎么编写IR代码,这次是如何给不同平台编译的笔记。
Monthly Archives: April 2015
ban!
今天呢,稍微花了些时间看了一遍积压了几个月的Apache2的log,然后就受到了惊吓,虽然知道肯定会被人扫描,但是!不看不知道,一看吓一跳!
LLVM框架学习笔记(1)
LLVM,对于很多OS X/iOS开发者来说,即使没有真正接触过,但想必也是有所耳闻。
LLVM,从名字上看就让人想到JVM (Java Virtual Machine),实际上也差不多,LLVM即Low Level Virtual Machine。那么既然是Virtual Machine,它也拥有自己的IR(中间表示)。
你可以在LLVM的官网上下载它的源码或者预编译版本。
那么就先从Hello World!开始吧
"Swift support" for class-dump
I added "Swift support" for class-dump.
Now, this tool can dump Objective-C headers even the MachO file uses Swift and ObjC at the same time. Notice, only ObjC headers can be dumped!
LAST, THIS IS AN EXPERIMENTAL VERSION.
我为class-dump添加了"Swift支持"。
现在,这个工具可以dump出可执行文件的Objective-C头文件,即使那个MachO文件同时使用了Swift和ObjC。请注意只有ObjC类的头文件可以被dump出来!
最后,这只是一个试验版本。
"Swift support" for class-dump
I added "Swift support" for class-dump.
Now, this tool can dump Objective-C headers even the MachO file uses Swift and ObjC at the same time. Notice, only ObjC headers can be dumped!
LAST, THIS IS AN EXPERIMENTAL VERSION.
我为class-dump添加了"Swift支持"。
现在,这个工具可以dump出可执行文件的Objective-C头文件,即使那个MachO文件同时使用了Swift和ObjC。请注意只有ObjC类的头文件可以被dump出来!
最后,这只是一个试验版本。
自己实现一个malloc
昨天阿里校招有这样一道题:
常常会有频繁申请、释放内存的需求,比如在发送网络报文时,每次都要分配内存以存储报文,等报文发送完成后又需要删除报文。 为了避免频繁的new/delete对系统带来的开销,需要实现一个通用的FreeList机制。使用者总是从free list中分配内存,如果存在没有使用的内存块就直接摘出来使用,如果没有的话再从系统中分配。使用完毕后并不去直接delete该内存块,而是交给FreeList保管。 要求: 1. 实现一个对固定大小内存块进行管理的通用FreeList类,给出定义和实现。要求不能使用STL中的容器类。定义类的接口和实现时注意通用性、健壮性和可测试性。 2. 如果该类的对象可能会被多个thread同时访问,请描述如何怎样保证线程安全。有没有办法在保证线程安全的同时尽可能增大并发度?如果有也请描述你的思路。
坑了5、6个小时终于写好了第一问,不过似乎写出来和要求的不太一样。。。(但是是绝对可用的)
theos中objc/objc++混编链接issue
虽然还没具体去看为什么,不过使用theos编译多个文件时,比如main.mm和一个a.m,会报链接错误。
稍微看了一下,是因为ObjC、ObjC++生成的符号不同,所以无法链接。
分析如下