gpt4 book ai didi

linux - 当两个共享库使用同一个 3rd 方库的不同版本时该怎么办?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:16 25 4
gpt4 key购买 nike

我有一个进程 A,它使用两个共享库:libA.solibB.so。因为这两个库是不同人写的。不幸的是,libA.so 使用了第 3 方库 libD.so 的 1.0 版。而 libB.so 以静态形式使用库的 2.0 版 libD.a。我知道如果libA.solibA.so 使用libD.so,可能会因为Global Symbol Interpose 而发生一些错误 。但是这种情况是否也存在同样的问题呢?

我知道链接标志 -Bsymbolic 可用于 libA.solibB.so 以强制符号首先使用库解析符号。为了使进程 A 正确运行,两个库都必须与此标志链接,对吗?但是,我没有libA.so 的源代码。所以我无法再次重新链接 libA.so

更一般地说,如果一个进程使用两个第 3 方库,其中包含另一个相同的第 3 方库。同样的事情会发生吗?我能做些什么来解决这个问题吗?

最佳答案

这可能对您有帮助,也可能没有帮助,但鉴于缺乏信息,我希望它至少能激发您的灵感或引导您找到类似的东西。

这是一个应用程序,允许您在每个目录的基础上更改您的 shell 设置: https://github.com/zimbatm/direnv

听起来您确实遇到了一个问题,需要您从源代码重新编译其中一个库。这并不理想,但如果没有使用兼容的第三方版本的构建,您可能会寻求一个完全不同的库来完成原始任务。

关于linux - 当两个共享库使用同一个 3rd 方库的不同版本时该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18008716/

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