【问题标题】:GCC 5 ABI changeGCC 5 ABI 更改
【发布时间】:2015-02-12 09:26:24
【问题描述】:

Fedora announced 他们可能计划在默认情况下关闭新 ABI 的情况下发布 GCC 5。据我了解,Fedora 22 将继续使用旧 ABI,Fedora 23 将使用新 ABI。程序必须大量重新编译。

我的问题是 C++11 标准从 C++03 发生的哪些改变会破坏 ABI 兼容性?

【问题讨论】:

  • 一个典型的事情是 std::string 没有引用计数并且有小字符串优化。
  • 还有 std::list,现在需要 O(1) size()
  • 无需重新编译程序。仔细阅读公告。

标签: c++ c++11 gcc abi


【解决方案1】:

GCC wiki 上有一个关于 Cxx11 向后 ABI 兼容性的页面:https://gcc.gnu.org/wiki/Cxx11AbiCompatibility

C++98 语言与 C++11 语言的 ABI 兼容,但库中的一些地方破坏了兼容性。这使得将 C++98 对象与 C++11 对象链接起来很危险。

【讨论】:

  • 你能把这个更明确,而不仅仅是链接吗?
猜你喜欢
  • 1970-01-01
  • 2020-02-27
  • 1970-01-01
  • 1970-01-01
  • 2016-07-18
  • 2021-11-26
相关资源
最近更新 更多