c++ 11和静态库,链接到libstdc++

C++11 and static library that is linked against libstdc++

本文关键字:链接 libstdc++ 静态 c++      更新时间:2023-10-16

我有一个C和c++的静态库。问题是库是指向libstdc++的。

在Xcode中,当我切换到libc++(使用c++ 11功能并使用提到的c++库)时,它会抛出许多编译错误。

标准库的作者说标准库还没有为c++ 11做好准备。

还有办法同时使用吗?

您的第三方静态库应该与编译时使用的c++库的相同版本相链接。这不仅包括库的类型(libstdc++),还包括确保ABI兼容性的主要/次要版本号。在最好的情况下,任何不同的库版本都会导致构建中断,或者在最坏的情况下导致奇怪的崩溃。在GCC手册中阅读更多关于ABI版本控制的信息。

如果第三方库的接口只有POD类型,你可以从你的静态库中创建一个共享库,然后在libc++链接的应用程序中使用它。