免费注册 查看新帖 |

Chinaunix

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

[C] 由多个静态库生成动态库文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-02 11:34 |只看该作者 |倒序浏览
最近在做sofia-sip的porting工作。 要将由每个子目录下生成的静态库文件,合并生成一个动态库文件。 但是最终生成的文件只有5180字节。
是否多个静态库文件无法生成动态库文件,必须有C源文件的参与才可以生成动态库??

论坛徽章:
0
2 [报告]
发表于 2011-11-02 13:52 |只看该作者
不是吧。 都没有这么用过??

论坛徽章:
0
3 [报告]
发表于 2011-11-02 15:21 |只看该作者
貌似so必须要PIC,如果之前的.O文件有不是PIC的,那么就不行了

论坛徽章:
0
4 [报告]
发表于 2011-11-02 16:44 |只看该作者
好的,谢谢你的回答。 不过我是先生成的.a文件 然后再由这些.a生成.so

论坛徽章:
30
摩羯座
日期:2013-12-23 17:28:38牛市纪念徽章
日期:2015-07-13 11:35:582022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:57青铜圣斗士
日期:2015-11-27 17:45:3815-16赛季CBA联赛之天津
日期:2016-02-15 13:44:3615-16赛季CBA联赛之江苏
日期:2018-05-02 16:56:2715-16赛季CBA联赛之辽宁
日期:2018-08-08 13:41:1015-16赛季CBA联赛之深圳
日期:2018-10-02 18:05:0315-16赛季CBA联赛之天津
日期:2019-05-31 15:05:0615-16赛季CBA联赛之北京
日期:2022-06-30 13:34:1115-16赛季CBA联赛之同曦
日期:2022-07-06 19:33:5415-16赛季CBA联赛之吉林
日期:2022-12-28 14:16:22
5 [报告]
发表于 2011-11-02 17:10 |只看该作者
和a文件无关,a文件就是许多o文件的集合,你可以自己解压出来,ls的意思就是你在生成这些o文件的时候是否都加入了PIC这个编译选项,没有就不行了

论坛徽章:
1
白羊座
日期:2013-09-18 22:02:26
6 [报告]
发表于 2011-11-02 17:19 |只看该作者
我的想法:
1.將.a展開成.o。使用 ar x命令
2.然後再用.o去生成.so

论坛徽章:
5
技术图书徽章
日期:2013-11-07 13:21:58技术图书徽章
日期:2013-12-07 10:34:46技术图书徽章
日期:2014-04-23 08:50:31双鱼座
日期:2014-09-16 09:12:34亥猪
日期:2015-01-23 13:37:49
7 [报告]
发表于 2011-11-02 18:55 |只看该作者
插,都说了多少遍了啊,PIC地址无关代码。

有些系统在生成可执行elf的时候,.a和.so一块链接,如果.a里面的.o不是PIC的都不能链接。

论坛徽章:
0
8 [报告]
发表于 2011-11-03 09:47 |只看该作者
PIC一直都有在加。 大家貌似么有明白我问的什么意思。
不过,问题已经搞定。 谢谢各位! 虽然啥都没帮上忙

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
9 [报告]
发表于 2011-11-03 10:11 |只看该作者
PIC一直都有在加。 大家貌似么有明白我问的什么意思。
_mystic 发表于 2011-11-03 09:47



   不是别人不理解你的问题,而是你不理解动态库和静态库的区别,导致看不懂别人的回复。

论坛徽章:
0
10 [报告]
发表于 2011-11-05 14:23 |只看该作者
大家都说到点上了,就这么几点:
1. 编译成.o时需要-fPIC,包括生成.a的.o也是
2. 把.a解压,解压出来的.o和你的.o一块链接成.so

如果还有问题就贴输出提示吧,要不就看楼上的@MMMIX的回帖~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP