C++ GCC ABI兼容性
据我所知,不可能链接使用不同版本的GCC应用程序二进制接口(ABI)的库。GCC的每个版本都有ABI更改吗?如果我使用GCC4.3.2,是否可以链接使用4.3.1构建的库?是否有某种类型的矩阵列出了我可以组合GCC版本的所有方法?指向一个。这个工具可以做你想做的事。由于gcc-3.4.0,ABI是向前兼容的。也就是说,使用旧版本制作的库可以与新版本链接,并且应该可以工作(反之则不行)。显然,可能会有bug,但文档中只提到了一个:啊,哎呀。C++ GCC ABI兼容性,c++,gcc,compatibility,abi,C++,Gcc,Compatibility,Abi,据我所知,不可能链接使用不同版本的GCC应用程序二进制接口(ABI)的库。GCC的每个版本都有ABI更改吗?如果我使用GCC4.3.2,是否可以链接使用4.3.1构建的库?是否有某种类型的矩阵列出了我可以组合GCC版本的所有方法?指向一个。这个工具可以做你想做的事。由于gcc-3.4.0,ABI是向前兼容的。也就是说,使用旧版本制作的库可以与新版本链接,并且应该可以工作(反之则不行)。显然,可能会有bug,但文档中只提到了一个:啊,哎呀。 如何判断哪个gcc编译了给定的二进制文件?这是你的电话号
如何判断哪个gcc编译了给定的二进制文件?这是你的电话号码 gcc-4.7.2-1-mingw32.README.txt中的死亡通知: 二进制不兼容通知! <> P> C和C++ ABI在GCC 4.7.0中发生变化,这意味着一般不能 将使用此版本的编译器编译的二进制文件链接在一起,然后 使用GCC 4.7.0之前的版本。特别是:
- 默认情况下启用选项-mms位字段,这意味着位字段布局 遵循Microsoft编译器的约定
- C++类成员函数现在遵循_uthiscall调用约定
- 编译器现在假定调用者弹出用于 指向聚合返回值的隐式参数。这影响到 按值返回结构的函数,如复杂数学类型