如何查找GCC支持的所有EABI版本以及如何查找目标系统的EABI版本?

时间:2012-01-20 10:05:57

标签: linux gcc android-ndk build-process arm

这里有两个问题:

  1. 将共享库移植到许多Linux-or-Android-on-ARM系统时,最好知道GCC交叉编译器支持的确切EABI版本以及默认的EABI版本。怎么做?

  2. 如何调查哪个EABI有目标Linux或Android系统?我通常从目标板上取出任何系统库并调用$ARM-GCC-PREFIX-readelf -h $LIBNAME | grep Flags,它返回给我smth。比如Version4 EABI。但是有没有漂亮的方法,所以我不需要将系统库从目标复制到主机来运行readelf

1 个答案:

答案 0 :(得分:1)

在我看来,你已经找到了识别文件ABI的真正方法。我不知道比readelf更好的方式。

同样,readelf可能是确定编译器使用的默认ABI的最佳方法。

编译器实际上不允许您选择任何特定的ABI版本。它只允许您在各种ABI变体之间进行选择。编译器只是在编写时实现当前的ABI。无论如何,EABI应该是向后兼容的。

也许真正的问题是支持哪种架构?或者什么浮动abi?构建特定设备时, 非常重要。