Chinaunix首页 | 论坛 | 博客
  • 博客访问: 189206
  • 博文数量: 70
  • 博客积分: 1728
  • 博客等级: 上尉
  • 技术积分: 755
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-14 21:54
文章分类
文章存档

2010年(19)

2009年(19)

2008年(32)

我的朋友

分类: LINUX

2009-04-21 15:10:36

1.通过.o目标文件生成静态库文件.a
ar rs libtest.a test.o
库文件名都是以lib开头的,静态库以.a作为后缀,表示Archive。
选项r表示将后面的文件列表(test.o)添加到文件包(libtest.a),如果文件包不存在就创建它,如果文件包中已有同名文件就替换成新的。
s是专用于生成静态库的,表示为静态库创建索引,这个索引被链接器使用。ranlib也可以为静态库创建索引,上面的命令等同于:
ar r libtest.a test.o
ranlib libtest.a

2.列出库文件成员
ar tv libtest.a
会列出test.o的详细信息
objdump -a libtest.a
与ar tv一样
nm -s libtest.a
当列出库中成员的符号时,包含索引。索引的内容包含:成员包含的函数名。

3.提取库成员
ar xv libtest.a test.o
x参数:从库中提取一个成员。如果不指定要提取的模块,则提取库中所有的模块。

4.用gcc命令生成动态库文件.so
gcc -c -g -fPIC test.c
-g是为了加入调试信息
gcc -shared -o libtest.so test.o

5.列出动态库成员符号
nm -D libtest.so

6.objdump可以查看反汇编代码
objdump -dS libtest.so

objdump  -x  obj  以某种分类信息的形式把目标文件的数据组织(被分为几大块)输出   
objdump  -t  obj  输出目标文件的符号表
objdump  -h  obj  输出目标文件的所有段概括
objdump  -j .text/.data -S  obj  输出指定段的信息,大概就是反汇编源代码把




阅读(468) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~