关于静态库的格式问题(静态库是ELF格式的吗)

最近在研究ELF文件格式,自己写了一个分析工具,但是遇到点问题,动态库(以.so结尾)的文件,可重定位(以.o结尾的目标文件)文件,可执行文件都可以正常分析出来,但是,分析静态库时,遇到了麻烦,我自己的工具识别不出来这个文件是ELF格式的,但是用系统的readelf可以正常分析,我将.a文件的头部显示出来,发现,.a文件头根本不是一个ELF头结构,ELF头结构在文件的中间的某个地方,
说明一下:我分析的是一个自己安装的.a文件,名字是libgs++.a,文件的开头是!<arch>
难道这是一种特殊的文件格式?
另外,手头上有关ELF方面的资料很少.有些也很旧了,很多地方是自己对照内核源码猜测出来的,
请教高手:
以!<arch>开头的是个什么文件?
传统的静态库文件是ELF格式的吗?
还有,哪位兄弟有最新的ELF方面的详细资料,能否给共享以下

作者: faku   发布时间: 2011-01-21

难以置信
既然你对elf格式有所深入,对ar文档居然一点不知。
通常ar是打包了一些.o文件,ar命令干的就是这个
既然你关注的是elf,把.a解包了再搞。

作者: id_for_fun   发布时间: 2011-01-21