应用程序可以依赖于两个不同版本的libstdc ++吗?

时间:2009-04-08 07:18:00

标签: c++ apache libstdc++

应用程序可以同时依赖于两个不同版本的libstdc ++吗? (例如:libstdc ++ 5和libstdc ++ 6)?方案是 - 一些二进制文件依赖于libstdc ++ 6但加载了依赖于libstdc ++ 5的.so ...

有没有机会工作?

2 个答案:

答案 0 :(得分:3)

最重要的是,您需要检查这两个版本的库是否与二进制兼容。例如,G ++ 3.3和3.4不是。

即使它们是: *可能存在名称错位问题 *你不能做交叉模块分配/解除分配(不管怎样一个坏主意) *您可能无法解决STL模块

答案 1 :(得分:1)

我刚刚将AS3 / GCC323的C ++应用程序移植到AS4 / GCC346。虽然app本身链接到libstdc ++。所以它链接到的一些库仍然链接到libstdc ++。so.5。当我试图运行它时,Depsite成功建立了SEGV。

一旦我在AS4 / GCC346上重新编译了库,应用程序和库只链接到libstdc ++。so.6并且不再出现SEGV。

所以我会说答案是肯定的,你不能把它们都联系起来。

乔恩