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 输出指定段的信息,大概就是反汇编源代码把
阅读(473) | 评论(0) | 转发(0) |