SO文件格式及linker机制学习总结
/*来自ThomasKing大神的两篇文章,原文地址:http://bbs.pediy.com/showthread.php?t=197512,http://bbs.pediy.com/showthread.php?t=197559*/学习SO文件格式和linker已有很长一段时间,现实现SO文件的抽取以及相应的加载器,目的在于学习总结,并对之前帖子未涉及到的知识进行补充。当然,为了让总结更有意思,先从文件格式的定义上入手,自定义一个简单的文件格式。为了保持平台上的兼容性和实现的简单性,在对SO抽取的过程中,保持与指令集相关的相对结构,不涉及与平台相关的指令集重定位等。后文在此格式基础上,实现一个类似linker的加载器,对抽取后的SO文件进行加载。限于水平,难免会有错误和疏漏之处,请各位大大斧正。http://bbs.pediy.com/images/smilies/smile.gif
另外,限于篇幅,后续文章将会介绍如何内存加载SO文件以及融合加载器的实现,目的在于将加载器与抽取后的文件相融合,实现无缝加载和替换......
static/image/hrline/1.gif
小弟接着上篇帖子,介绍SO的内存加载以及改进上文的加载器。由于删减了部分内容,本想附带在上篇帖子。考虑到内容不同,还是选择了另开一贴http://bbs.pediy.com/images/smilies/redface.gif。至此,对ELF和linker的学习告一段落。在各位坛友的支持下,小弟坚持把学习笔记写完,对各位坛友表示衷心感谢http://bbs.pediy.com/images/smilies/biggrin.gif。限于水平,难免会有错误和疏漏之处,请各位大大斧正,小弟感激不尽。
----------------------------------------------
将上文生成的SO抽取文件libfoo.mo放入merge中,在linux环境下直接make,将生成的libfoo.so文件放入测试工程libs/armabi目录下即可。
static/image/hrline/3.gif
附件下载地址:
**** Hidden Message *****
回复可见。。。 支持教学贴 来学习 学习大神的 好帖马萨瑟 支持下下 前来支持{:6_168:} 看看是什么 进来学习一下呀。。。。。哈哈。 学习学习