gpt4 book ai didi

c++ - (如何)我可以在 Centos/RHEL 上使用新的 C++ 11 ABI 和 devtoolset-7 吗?

转载 作者:可可西里 更新时间:2023-11-01 18:38:54 26 4
gpt4 key购买 nike

我的目标是在 Centos 7 上使用 gcc 7.2(和 clang 6)构建与 Centos 7 目标兼容的可执行文件,而无需安装 devtoolset,但 * 使用较新的 C++ ABI *。

较新的 ABI 修复了库中的几个缺陷,如果不更改 ABI 就无法修复这些缺陷。例如 list::size O(1) Vs O(n),字符串没有 COW。

我推测了为什么在以下问题中这不可能的答案。 -D_GLIBCXX_USE_CXX11_ABI=1 ineffective for devtoolset-7 on CentOS 7

最佳答案

这似乎与您链接到的问题重复,我看不出有任何理由将两者都打开。

Can I use the new C++ 11 ABI with devtoolset-7 on Centos/RHEL?

没有。 cxx11 ABI 影响 libstdc++.so 的许多内部事物(特别是语言环境方面),devtoolset 混合链接模型不支持这些事物。初始化语言环境的相关函数已经存在于系统libstdc++.so中,无法被devtoolset的libstdc++_nonshared.a替代。因此(并避免我们不想影响 RHEL/CentOS 用户的其他潜在 ABI 不匹配)我们在 devtoolset 中禁用了新的 ABI(如 the answer to the other question 中正确所述)。

如果你真的需要新的 cxx11 ABI,你需要构建你自己的 GCC 7,它使用正常的动态链接到它自己的 libstdc++.so(而不是devtoolset 使用的混合链接模型),然后确保在运行时使用新的 libstdc++.so(请参阅手册中的 Finding Dynamic or Shared Libraries)。

关于c++ - (如何)我可以在 Centos/RHEL 上使用新的 C++ 11 ABI 和 devtoolset-7 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49393888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com