【问题标题】:C++11 and static library that is linked against libstdc++与 libstdc++ 链接的 C++11 和静态库
【发布时间】:2015-08-04 20:58:09
【问题描述】:

我有一个库,它是 C 和 C++ 的静态库。 问题是该库与libstdc++ 链接。

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

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

还有办法同时使用吗?

【问题讨论】:

    标签: c++ c++11 libstdc++ libc++


    【解决方案1】:

    您的第 3 方静态库应与编译时所针对的 C++ 库的同一版本链接。这不仅包括库的类型 (libstdc++),还包括主要/次要版本号,以确保 ABI 兼容性。任何不同的库版本都会让你在最好的情况下构建中断,或者在最坏的情况下让你发生奇怪的崩溃。在GCC manual 中阅读有关 ABI 版本控制的更多信息。

    如果 3-rd 方库的接口只有POD types,您可以从静态库中创建一个共享库,然后在与 libc++ 链接的应用程序中使用它。

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2020-06-17
      相关资源
      最近更新 更多