objc -编译Runtime 源码

https://github.com/opensource-apple

Objective-C是基于C加入了面向对象特性和消息转发机制的动态语言,除编译器之外,还需用Runtime系统来动态创建类和对象,进行消息发送和转发。本文作者通过分析Apple开源的Runtime代码来深入理解OC的Runtime机制。

http://www.csdn.net/article/2015-07-06/2825133-objective-c-runtime/1

而这篇文章的目的,就是教你从苹果提供的Runtime源码,编译出自己的libobjc.A.dylib。进而你可以调试它,深入了解它。http://blog.csdn.net/wotors/article/details/52489464

1-0

1.下载你电脑对应的objc-runtime

2.

<1>如何搜索到objc4 首先https://opensource.apple.com/     iOS公开源码也少,基本上看MAC里面的源码就可以了。

<2>点击电脑对应的版本,然后com+F搜索objc4    我这里查询到是objc4-706  然后点击,页面显示https://opensource.apple.com/source/objc4/objc4-706/  然后https://opensource.apple.com/source/objc4可以看到不同的版本。

<3>tarballs  压缩包,把这里改成tarballs  就可以看到所有的压缩包。得到打包的版本.下载对应的版本;

http://opensource.apple.com/tarballs/objc4/

https://opensource.apple.com/tarballs/CF/

<4>objc4  Libc  dyld  libauto libclosure  libdispatch libpthread xnu还差一个launchd项目,在此目录搜不到。于是,直接去Source目录Tarballs目录⌘+F可搜索到。那就在这里下载个最新版本吧,没有我们要的头文件时再下个旧版就行了。

(1)Libc 库libc是Linux下的ANSI C的函数库。

(2)XNU是内核,就像linux一样,当然,XNU是由Mach、FreeBS D内核以及苹果自己的驱动框架组合而来的。Darwin是操作系统,当然只是基础部分,包括了内核和基本的工具和库,可以类比为FreeBSD或者ArchLinux那样。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,871评论 2 45
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,030评论 25 709
  • 公司楼道里有两个厕所,分别在南北两端的入口处。平日里来来往往,形色匆匆,从来都不会注意到厕所里蓝色的身影。 ...
    宁黛阅读 349评论 0 1
  • sudo dmesg -T | grep "(java)" 就能查看关闭记录
    莫东阅读 5,171评论 0 0
  • 夏夏简单得像个小姑娘,常常扬起头问米叔,这是什么呀?为什么那个要那样?等等诸如此类的,在外人看来超级弱智的问...
    夏米的老鼠阅读 252评论 0 2

友情链接更多精彩内容