我很难回答这个问题--这似乎是一个显而易见的问题--但我没有发现:用"-std=c++11“(g++)二进制文件编译的模块是否与未使用该选项编译的模块兼容?(也就是说,我能把它们安全地连接起来吗?)这两个编译都将使用完全相同版本的g++。
更准确地说,使用gcc 4.9.0,我只能在特定的编译单元上使用"-std=c++11“,然后让其他编译单元没有选择。
发布于 2014-05-26 16:36:57
一个权威的参考资料可以在gcc的C++11 ABI兼容性页面上找到。
简短的总结是:由于没有语言原因,ABI被打破了,但是也有一些强制性的改变,导致了标准的C++库随gcc一起运输发生变化。
https://stackoverflow.com/questions/23874393
复制相似问题