栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

应用程序在运行时如何解析为共享库的不同版本?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

应用程序在运行时如何解析为共享库的不同版本?

共享库的版本控制如下:

创建共享库时,请给它一个真实名称和一个

soname
。这些用于安装共享库(创建共享库和指向共享库的链接)。

因此,您可能会遇到以下情况:

pax> ls -al xyz*-rw-r--r--  1 pax paxgroup    12345 Nov 18  2009 xyz.so.1.5lrwxrwxrwx  1 pax paxgroup        0 Nov 18  2009 xyz.so.1 -> xyz.so.1.5lrwxrwxrwx  1 pax paxgroup        0 Nov 18  2009 xyz.so -> xyz.so.1

xyz.so.1.5
拥有的
SONAME
xyz.so.1

当连接环节

xyz.so
,它遵循的链接一路
xyz.so.1.5
和使用其
SONAME
xyz.so.1
存储的可执行文件。然后,当您 运行
该可执行文件时,它会尝试加载
xyz.so.1
指向某个特定文件
xyz.so.1.N
(不一定是1.5版)的文件。

因此,您可以安装

xyz.so.1.6
和更新
xyz.so.1
链接以指向该链接,而已经链接的可执行文件将使用该链接。

这种多层方法的一个优点是,您可以拥有多个同名(

xyz.so.1.*
xyz.so.2.*
)的潜在不兼容库,但是在每个主要版本中,
由于它们应该兼容 ,因此可以自由升级它们。

链接新的可执行文件时:

  • 与之链接的人
    xyz.so
    将获得最新主要版本的最新次要版本。
  • 与之链接的其他人
    xyz.so.1
    将获得特定主要版本的最新次要版本。
  • 还有其他链接
    xyz.so.1.2
    将获得特定主要版本的特定次要版本。

现在,当我们检查您的评论时,请记住最后一段:

现在让我们说我用以下实名编译同一库的另一个版本

libmy.so.2.0
。根据指南,SONAME为
libmy.so.2.0

不,我不相信。该

soname
会更可能是
libmy.so.2
这样,你可以做轻微的更新到
2.x
流并获得最新的行为。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/399082.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号