gpt4 book ai didi

c - 链接到具有软链接(soft link)的共享库

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:04 25 4
gpt4 key购买 nike

海合会c89

我只是想链接到下面的共享库。

我想知道为什么程序员创建了这么多软链接(soft link)。程序员离开了公司,我只是想知道目的是什么。

lrwxrwxrwx. 1       24 Jan 11 11:23 libsofia-sip-ua.so -> libsofia-sip-ua.so.0.6.0
lrwxrwxrwx. 1 24 Jan 11 11:23 libsofia-sip-ua.so.0 -> libsofia-sip-ua.so.0.6.0
-rwxrwxr-x. 1 4728304 Jan 11 11:19 libsofia-sip-ua.so.0.6.0

据我所知,如果库要更新到更新版本,您可以将它与更新版本软链接(soft link)。

但为什么要创建 libsofia-sip.so.0?

非常感谢您的任何建议,

最佳答案

.so 结尾的文件名是链接器(不是动态链接器)在使用-l 选项指定要搜索的库时使用的文件名/关联。链接器不知道其他后缀,也不会找到它们。当链接器打开此文件时,它在库 header 的 DT_SONAME 字段中发现了一个不同的名称,通常是带有单个数字后缀的名称。这是它将存储在新程序动态链接 header 的 DT_NEEDED 字段中的名称。

.so.N结尾的文件名(比如你的N=0)就是库文件中DT_SONAME对应的文件名,代表一个一系列具有兼容 ABI 的库版本。

.so.N.X.Y 结尾的文件名是当前安装的库版本的实际文件。可能存在多个这些符号链接(symbolic link),通常其他符号链接(symbolic link)将设置为指向最新版本。但是旧版本不会以这种方式自动覆盖,因此您可以使用 LD_PRELOAD 手动加载旧版本,或者如果有理由需要降级则替换符号链接(symbolic link)。

关于c - 链接到具有软链接(soft link)的共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9882669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com