gpt4 book ai didi

c++ - 应用程序中两个不同版本的库

转载 作者:太空狗 更新时间:2023-10-29 12:38:56 25 4
gpt4 key购买 nike

考虑一个场景,其中有两个不同版本的共享库。考虑 A.1.so 链接到 B.so 和 A.2.so 链接到 C.so。现在 B.so 和 C.so 都链接到 d.exe 。当 B.so 想要调用 A.1.so 中的函数时,它最终调用了 A.2.so 中的函数。因此,它给了我们未定义的行为。

现在我希望我的 B.so 只调用 A.1.so。我只能修改 A.1.so 和 B.so ,没有别的。使用 dlopen() 是一种选择,但要使用 dlopen(),我必须对 B.so 进行重大更改。 Stack Overflow 前面给出了很多解决方案,但似乎都没有用。请注意,我只能在 A.1.so 和 B.so 中更改代码。

除了 dlopen() 之外,是否还有其他解决此问题的方法。我在下面提到了一些链接。

最佳答案

你能把A1.cpp中的所有代码包装在namespace A1中,并添加一个using namespace A1B.cpp?通过 A1.cppB.cpp 我的意思是 A1.soB.so 的所有相关翻译单元>.

关于c++ - 应用程序中两个不同版本的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56947406/

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