打印

关于动态库和静态库的问题,谢谢

关于动态库和静态库的问题,谢谢

在first文件夹下包含如下文件
first
   1.c
   2.c
在second文件下包含如下文件
second
   3.c
   4.c
--------------------------------------------------------------------------------
假设编译成如下的静态库:
first.a
second.a

first.a中包含1.o,2.o
second.a中包含3.o,4.o

我现在执行这样的命令:ar rcs total.a first.a second.a
结果可以得到total.a这个库。

但是我执行命令:ar tv total.a时,结果如下:
rw-r--r-- 0/0  23560 Nov 13 14:47 2006 first.a
rw-r--r-- 0/0 103812 Nov 13 14:47 2006 second.a
我想得到的是这样的结果
rw-r--r-- 0/0  23560 Nov 13 14:47 2006 1.o
rw-r--r-- 0/0 103812 Nov 13 14:47 2006 2.o
rw-r--r-- 0/0 103812 Nov 13 14:47 2006 3.o
rw-r--r-- 0/0 103812 Nov 13 14:47 2006 4.o
请问如何做到!谢谢

另外的问题是如何把这些*.o文件,编译成一个动态库,谢谢!
来之苏州 电子书《Linux1.0核心游记》 下载地址: http://www.linuxabc.net/book/bookinfo.php?id=362 QQ群:19045880

TOP

man gcc
看看其中的shared参数

TOP

好像没有理解我的意思
来之苏州 电子书《Linux1.0核心游记》 下载地址: http://www.linuxabc.net/book/bookinfo.php?id=362 QQ群:19045880

TOP

.a => .o
ar x first.a


.a => .so
ld --whole-archive -shared -o total.so total.a

TOP

谢谢 AnthonyLee的回答,第二个问题已经解决!

第一个问题是,有两个*.a文件,假设为
first.a和second.a,

first.a中包含1.o,2.o
second.a中包含3.o,4.o

现在我想通过这两个*.a文件生成个新的.a文件,我通过这个命令
ar rcs total.a first.a second.a
但是我执行命令:ar tv total.a时,结果如下:
rw-r--r-- 0/0 23560 Nov 13 14:47 2006 first.a
rw-r--r-- 0/0 103812 Nov 13 14:47 2006 second.a
我想得到的是这样的结果
rw-r--r-- 0/0 23560 Nov 13 14:47 2006 1.o
rw-r--r-- 0/0 103812 Nov 13 14:47 2006 2.o
rw-r--r-- 0/0 103812 Nov 13 14:47 2006 3.o
rw-r--r-- 0/0 103812 Nov 13 14:47 2006 4.o
请问如何做到!谢谢
也就是把两个.a库中的目标文件,放到新生成的.a文件中!谢谢!
来之苏州 电子书《Linux1.0核心游记》 下载地址: http://www.linuxabc.net/book/bookinfo.php?id=362 QQ群:19045880

TOP