免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 16711 | 回复: 15
打印 上一主题 下一主题

gcc ar命令 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-23 10:31 |只看该作者 |倒序浏览
gcc ar命令
gcc ar 可以实现把几个.o与.a打成一个.a吗?

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2008-05-23 13:53 |只看该作者
ar rcs libtest.a test1.o test2.o test3.o

论坛徽章:
0
3 [报告]
发表于 2008-05-23 15:10 |只看该作者
楼主是把几个.o生成了.a
与我的本意不同

论坛徽章:
0
4 [报告]
发表于 2008-05-23 16:35 |只看该作者
先用AR把那个.a文件解开,然后再重新打包不就可以了吗?
ar -t libtest.a | ar -x libtest.a
ar -rcs *.o

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
5 [报告]
发表于 2008-05-23 17:21 |只看该作者
我的命令一样可以办到

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

论坛徽章:
0
6 [报告]
发表于 2008-05-26 16:50 |只看该作者
楼上的实现不了,还是要先解开,再打包

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
7 [报告]
发表于 2008-05-27 09:26 |只看该作者
........ar连插都不能插,这个命令还有什么用?
实验:

  1. [root@SRUCAU A]# rm -f *
  2. [root@SRUCAU A]# cat >1.c
  3. int func1(void){return 1;}
  4. [root@SRUCAU A]# cat >2.c
  5. int func2(void){return 2;}
  6. [root@SRUCAU A]# cat >3.c
  7. int func3(void){return 3;}
  8. [root@SRUCAU A]# gcc -c *.c
  9. [root@SRUCAU A]# ar rcs libtest.a 1.o 2.o
  10. [root@SRUCAU A]# nm libtest.a

  11. 1.o:
  12. 00000000 T func1
  13. 00000000 t gcc2_compiled.

  14. 2.o:
  15. 00000000 T func2
  16. 00000000 t gcc2_compiled.
  17. [root@SRUCAU A]# rm -f *.c 1.o 2.o
  18. [root@SRUCAU A]# ar rcs libtest.a 3.o
  19. [root@SRUCAU A]# nm libtest.a

  20. 1.o:
  21. 00000000 T func1
  22. 00000000 t gcc2_compiled.

  23. 2.o:
  24. 00000000 T func2
  25. 00000000 t gcc2_compiled.

  26. 3.o:
  27. 00000000 T func3
  28. 00000000 t gcc2_compiled.

复制代码

论坛徽章:
0
8 [报告]
发表于 2008-05-27 14:38 |只看该作者
楼上的正确,是我看错了
可以把.o放到库里面去

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

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

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
9 [报告]
发表于 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

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
10 [报告]
发表于 2008-05-28 10:13 |只看该作者
另外,检验一个事的真伪不是靠想当然的,而是靠实验。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP