我有一个库,它是C和C ++的静态库。
问题是该库与libstdc++
链接。
在Xcode中切换到libc++
(使用C ++ 11功能并使用上面提到的C ++库)时,会抛出许多编译错误。
图书馆的作者说该库还没有为C ++ 11做好准备。
还有办法同时使用它们吗?
答案 0 :(得分:0)
您的第3方静态库应该与针对它编译的C ++库的相同版本链接。这不仅包括库的类型(libstdc ++),还包括确保ABI兼容性的主要/次要版本号。任何不同的库版本都会让你在最好的情况下构建中断,或者在最坏的情况下发生奇怪的崩溃。在GCC manual中阅读有关ABI版本控制的更多信息。
如果第3方库的界面只有POD types,您可以从静态库中创建共享库,然后在与libc ++链接的应用程序中使用它。