首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在当前的Linux发行版上打包C++11软件安全吗?

在当前的Linux发行版上打包C++11软件安全吗?
EN

Stack Overflow用户
提问于 2014-12-02 02:25:11
回答 1查看 399关注 0票数 17

作为Linux发行版的下游维护者,我经常维护的一些包开始在它们的代码库中使用C++11特性。所有这些都依赖于Linux发行版打包的不同库。

当C++11代码与C++98和AFAIK混合时可能会出现Problems with the ABI,当前大多数主要的Linux发行版在编译软件以生成包时默认不启用C++11标志。

的问题是:主要的Linux发行版如何处理C++11代码的输入?在使用系统库时,有没有合适的方法来检查或避免ABI出现的这些问题?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-12-02 05:20:40

这个问题与C++11和C++98没有任何关系,除了C++11可以激发二进制更改。由C++11驱动的二进制更改并没有什么特别之处,它们和常规的二进制更改一样具有破坏性或非破坏性。此外,只有当库维护人员明确选择更改其二进制接口时,才会更改它们。

换句话说,这与标准版本无关,而是与库有关,除非库明确选择为不同的标准版本提供两个不同的二进制接口(这仍然是库的选择)。除了这种情况,你在C++98中和在C++11中一样崩溃了。安腾在支持C++11的版本和支持C++98的版本之间是向后兼容的,所以编译器的ABI是不会崩溃的。

在内存中,除非你使用的是4.7.0,它是他们为了好玩而破解的,否则你用libstdc++是相当安全的-他们正在为将来的版本储存ABI破解,当他们可以取得重大突破的时候。

换句话说,虽然向C++11的过渡期可能会引入额外的动机来破坏ABI,因此会带来额外的风险,但实际使用C++11本身并不会带来任何额外的风险。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27234776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档