99lingbo 发表于 2008-05-23 10:31

gcc ar命令

gcc ar命令
gcc ar 可以实现把几个.o与.a打成一个.a吗?

cjaizss 发表于 2008-05-23 13:53

ar rcs libtest.a test1.o test2.o test3.o

99lingbo 发表于 2008-05-23 15:10

楼主是把几个.o生成了.a
与我的本意不同

alucard_yk 发表于 2008-05-23 16:35

先用AR把那个.a文件解开,然后再重新打包不就可以了吗?
ar -t libtest.a | ar -x libtest.a
ar -rcs *.o

cjaizss 发表于 2008-05-23 17:21

我的命令一样可以办到

[ 本帖最后由 cjaizss 于 2008-5-23 17:22 编辑 ]

99lingbo 发表于 2008-05-26 16:50

楼上的实现不了,还是要先解开,再打包

cjaizss 发表于 2008-05-27 09:26

........ar连插都不能插,这个命令还有什么用?
实验:

# rm -f *
# cat >1.c
int func1(void){return 1;}
# cat >2.c
int func2(void){return 2;}
# cat >3.c
int func3(void){return 3;}
# gcc -c *.c
# ar rcs libtest.a 1.o 2.o
# nm libtest.a

1.o:
00000000 T func1
00000000 t gcc2_compiled.

2.o:
00000000 T func2
00000000 t gcc2_compiled.
# rm -f *.c 1.o 2.o
# ar rcs libtest.a 3.o
# nm libtest.a

1.o:
00000000 T func1
00000000 t gcc2_compiled.

2.o:
00000000 T func2
00000000 t gcc2_compiled.

3.o:
00000000 T func3
00000000 t gcc2_compiled.

99lingbo 发表于 2008-05-27 14:38

楼上的正确,是我看错了
可以把.o放到库里面去

其实我的目的是想:如何实现几个库连成一个库
例如:ar -rcs test.alib1.a lib2.a lib3.a
lib1.a lib2.a lib3.a打成一个包test.a

[ 本帖最后由 99lingbo 于 2008-7-9 11:30 编辑 ]

cjaizss 发表于 2008-05-27 17:07

回复 #8 99lingbo 的帖子

那只有写个shell了
OBJ=
for i in lib1.a lib2.a lib3.a
do
      ar x $i
      OBJ=$OBJ `ar t $i`
done
ar rcs libtest.a $OBJ
rm -f $OBJ

cjaizss 发表于 2008-05-28 10:13

另外,检验一个事的真伪不是靠想当然的,而是靠实验。
页: [1] 2
查看完整版本: gcc ar命令