免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: zangkannt
打印 上一主题 下一主题

关于静态库和动态库的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-04-08 23:20 |只看该作者

回复 #9 chenzhanyiczy 的帖子

呵呵,我知道怎么改。

我就是想弄明白是什么导致了这种现象。

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
12 [报告]
发表于 2009-04-08 23:26 |只看该作者
至于什么原因,是由于static int 变量引起的

论坛徽章:
0
13 [报告]
发表于 2009-04-08 23:28 |只看该作者

回复 #10 augustusqing 的帖子

1,生成的两个so,每个so里面有静态库的拷贝,但记录的符号名字是同名的。当他们直接以-l方式链接进同一个进程的时候,链接和运行过程中,只需要在任何一个so里找到了静态库的符合,程序就开跑,运行的是同一份静态库。所以只执行一次。

这是不是因为加载器不会区分来自不同库的相同符号。我看有windows的人说ms的dll,是可以区分的。

论坛徽章:
0
14 [报告]
发表于 2009-04-08 23:33 |只看该作者
原帖由 prolj 于 2009-4-8 23:08 发表
静态库和动态库


没理解 ??? 请明示。。。

论坛徽章:
0
15 [报告]
发表于 2009-04-08 23:35 |只看该作者
不明白,等答案

论坛徽章:
0
16 [报告]
发表于 2009-04-08 23:37 |只看该作者
原帖由 chenzhanyiczy 于 2009-4-8 23:26 发表
至于什么原因,是由于static int 变量引起的


我知道是static int 变量引起的,但是到底加载器如何处理了这个处于bss上的static int变量,使得位于两个不同地址的同名函数访问了同一个static int变量呢(我本以为,应该是加载了两个库所以有两个static int变量,相同名称但不同地址)?

[ 本帖最后由 zangkannt 于 2009-4-9 08:55 编辑 ]

论坛徽章:
0
17 [报告]
发表于 2009-04-09 07:51 |只看该作者
没有什么“两个库空间”。

论坛徽章:
0
18 [报告]
发表于 2009-04-09 08:54 |只看该作者
原帖由 beepbug 于 2009-4-9 07:51 发表
没有什么“两个库空间”。


哦,我的说法不对,改了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP