使用-std=c++11会破坏二进制兼容性吗?
Does using -std=c++11 break binary compatibility?
我一直在努力寻找这个问题-这似乎是一个显而易见的问题-但我还没有找到它:用"-std=c++11" (g++)二进制编译的模块是否与不使用该选项编译的模块兼容?(也就是说,我能把它们安全地连接在一起吗?)两个编译将使用完全相同的g++版本。
更准确地说,使用gcc 4.9.0时,我可以只在特定的编译单元上使用"-std=c++11",然后让其他编译单元在没有该选项的情况下进行编译吗?
可以在gcc的c++ 11 ABI兼容性页面中找到权威参考。
简短的总结是:没有语言原因导致ABI被破坏,但是有一些强制的更改导致了gcc附带的标准c++库的更改。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 添加noexcept是否会破坏二进制兼容性
- 在Qt中使用C++Lambda函数作为插槽是否有助于保持库的二进制兼容性?
- 为什么新的虚拟函数不会破坏二进制兼容性的现象?
- 在类中添加新的成员变量会影响二进制兼容性
- 2015年视觉工作室的二进制兼容性
- 保证C++库二进制兼容性的简单方法,C链接
- 添加move构造函数会破坏二进制兼容性吗
- 关于 Linux 的二进制兼容性
- 我们什么时候打破二进制兼容性
- Linux二进制兼容性
- 可以添加静态变量破坏 Linux 上的二进制兼容性
- 使用按引用传递而不是按指针传递时的二进制兼容性
- 旧发行版上的二进制兼容性(使用C++11)
- 在C++中更改参数名称时的二进制兼容性
- 不同类中相同结构定义的二进制兼容性
- 内联如何限制升级版本的二进制兼容性
- 由于虚拟函数,二进制兼容性中断
- 更改方法以添加隐藏的this指针是否会破坏二进制兼容性
- Solaris: libSTLPort的二进制兼容性.使用libstd.so