本站教程收集整理的这篇文章主要介绍了(如何)我可以在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 美国高防vps ABI吗?全部内容,希望文章能够帮你解决(如何)我可以在Centos / RHEL上使用带有devtoolset-7的新C 11 ABI吗?所遇到的程序开发问题。
如果觉得本站教程网站内容还不错,欢迎将本站教程推荐给好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。