在这种情况下,我有一个使用最近的GCC(4.3.3)的C ++代码库,但我需要链接一个使用GCC 3.2.3构建的旧库。没有更新版本的库,我不能没有它,它是封闭的源代码,因此无法重建。
这似乎是一个问题,因为GCC 4.3.3和3.2.3之间存在ABI不兼容性,所以我试图看看我的解决方案是什么选择。
一些额外的细节:
我到目前为止尝试过:
我读了这个页面:http://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html这似乎表明可以在应用程序中混合使用C ++ ABI版本来满足库之间不同的依赖关系。但是,除非我遗漏了一些东西,否则它似乎在这里工作得不好。
有什么想法吗?
答案 0 :(得分:3)
好的,您的解决方法是:
您可以在C库周围编写一些C ++“包装器”代码,这样您就可以将它用作C ++,但这段代码将在新编译器中构建。