【问题标题】:How to find all EABI versions a GCC supports and how to find an EABI version of the target system?如何找到 GCC 支持的所有 EABI 版本以及如何找到目标系统的 EABI 版本?
【发布时间】:2012-02-14 21:59:00
【问题描述】:

这里有两个问题:

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

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

【问题讨论】:

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


    【解决方案1】:

    在我看来,您已经找到了一种真正的方法来识别文件使用的 ABI。我不知道有比readelf 更好的方法。

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

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

    也许真正的问题是支持什么架构?或者什么漂浮物?在为特定设备构建时,这些 很重要。

    【讨论】:

      猜你喜欢
      • 2014-02-27
      • 2016-05-12
      • 1970-01-01
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      • 2021-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多