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

发布时间:2020-04-05 发布网站:大佬教程
大佬教程收集整理的这篇文章主要介绍了(如何)我可以在Centos / RHEL上使用带有devtoolset-7的新C 11 ABI吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的目标是在Centos 7上使用 gcc 7.2(和clang 6)构建与Centos 7目标兼容的可执行文件,而不安装devtoolset,但*使用较新的C ABI *.

较新的ABI修复了lib中的一些缺陷,这些缺陷在没有ABI更改的情况下无法修复.例如:list :: size O(1)Vs O(n),字符串没有COW.

我猜测为什么在以下问题中可能无法实现这一点.
-D_GLIBCXX_USE_CXX11_ABI=1 ineffective for devtoolset-7 on CentOS 7

解决方法

这似乎与您链接的问题重复,我认为没有任何理由保持两者都开放.

不可以.cxx11 ABI会影响libstdc .so内部的一些内容(特别是locale facets),这是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).

大佬总结

以上是大佬教程为你收集整理的(如何)我可以在Centos / RHEL上使用带有devtoolset-7的新C 11 ABI吗?全部内容,希望文章能够帮你解决(如何)我可以在Centos / RHEL上使用带有devtoolset-7的新C 11 ABI吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ群:277859234,请注明来意。