Pau*_*aul 8 c++ c++11 devtoolset centos7 software-collections
我的目标是在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对CentOS 7上的devtoolset-7无效
这似乎与您链接的问题重复,我认为没有任何理由让两者保持开放。
我可以在 Centos/RHEL 上使用带有 devtoolset-7 的新 C++ 11 ABI 吗?
号的cxx11
ABI影响许多事情内部到libstdc++.so
其不能由devtoolset混合键模型来支持(具体地,区域设置的面)。初始化语言环境的相关函数已经存在于系统中libstdc++.so
,不能被 devtoolset 的libstdc++_nonshared.a
. 因此(并且为了避免我们不想影响 RHEL/CentOS 用户的其他潜在 ABI 不匹配),我们在 devtoolset 中禁用了新的 ABI(如另一个问题的答案中所述)。
如果您真的需要新的cxx11
ABI,则需要构建自己的 GCC 7,该 GCC 7 使用正常的动态链接到自己的libstdc++.so
(而不是 devtoolset 使用的混合链接模型),然后确保在运行时使用新的 libstdc++.so(请参阅在手册中查找动态或共享库)。
归档时间: |
|
查看次数: |
1891 次 |
最近记录: |