免费注册 查看新帖 |

Chinaunix

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

[C++] 静态库可以再包含静态库吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-06 18:10 |只看该作者 |倒序浏览
我用 ar 命令把一个 .o 文件和 libA.a 打包成一个 libB.a;
再把 libB.a 与目标代码连接生成可执行程序的时候,提示无法连接 libA.a 内的对象;

用 objdump 查看 libB.a,显示 libA.a 是未知格式,估计是把 libA.a 当成了普通的 .o 文件,

那么,是否有办法把 libA.a 打包到 libB.a 中呢?

我不想带着那么多的静态文件。

谢谢。

论坛徽章:
0
2 [报告]
发表于 2010-01-07 08:58 |只看该作者
我顶

论坛徽章:
0
3 [报告]
发表于 2010-01-07 09:36 |只看该作者
一个应用,在链接时如果使用了静态库,那么,静态库中的内容会完全被放到应用中来,在发行时就没必要再带上库了啊。不知道你为何有这样的疑问。

论坛徽章:
0
4 [报告]
发表于 2010-01-07 09:38 |只看该作者
如楼上所说,如果连接了动态库则需要在运行时载入。

对应用来说就是一个符号二一

论坛徽章:
0
5 [报告]
发表于 2010-01-07 09:45 |只看该作者

回复 #3 drowndog 的帖子

我所说的“我不想带着那么多的静态文件。”并非指运行时带着,而是编译/链接时也不想带得太多。

如果 libA.a 和 libB.a 本身就一定是一起使用的,我就只想有一个 libB.a 就可以了。

论坛徽章:
0
6 [报告]
发表于 2010-01-07 09:46 |只看该作者

回复 #5 chengdot 的帖子

当然可以

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2010-01-07 09:51 |只看该作者

回复 #5 chengdot 的帖子

把 libA.a 展开,然后重新打包 .

论坛徽章:
0
8 [报告]
发表于 2010-01-07 10:10 |只看该作者

回复 #7 snow888 的帖子

再请问:如何展开?

论坛徽章:
0
9 [报告]
发表于 2010-01-07 10:20 |只看该作者
其实不用展开,直接 ar r libA.a b*.o 可以追加 .o 到 .a 中,

谢谢各位。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP