GCC ABI兼容性

Fre*_*ner 26 c++ compatibility gcc abi

据我所知,不可能链接使用不同版本的GCC应用程序二进制接口(ABI)的库.是否对每个版本的GCC都进行了ABI更改?如果我使用GCC 4.3.2,是否可以链接使用4.3.1构建的库?是否有某种矩阵列出了我可以组合GCC版本的所有方法?

APr*_*mer 17

从gcc-3.4.0开始,ABI是向前兼容的.IE使用较旧版本创建的库可以与较新版本链接,它应该可以工作(反之亦然).很显然,有可能是错误的,但只有有一个文档中mentionned:http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33678

  • 从GCC 5.1开始,它看起来不再向前兼容了.另请参阅[使用abi :: cxx11符号链接问题?](http://stackoverflow.com/q/36159238)和[GCC-5.1和两个C++ ABI的案例](http://allanmcrae.com/2015/06 /的情况下 - 的-GCC-5-1和 - 的二-C-ABIS /). (3认同)

abl*_*eul 13

官方ABI页面指向ABIcheck.这个工具可以做你想要的.

  • 该示例展示了如何使用链接器以便能够链接多个库。但它们不能互操作:例如,您不能将向量从第一个库传递到另一个库。 (2认同)