【问题标题】:ARMv6, ARMv7 linking compatibilityARMv6、ARMv7 链接兼容性
【发布时间】:2012-11-30 15:18:38
【问题描述】:

我知道兼容 ARMv7 的 CPU 可以执行 ARMv6 代码。

但是我可以将 ARMv6 代码与 ARMv7 代码静态链接到单个二进制文件中吗?

我对 iOS 6 和 Android 平台都感兴趣。

【问题讨论】:

  • 你说的是NDK吗?如果您想同时生成 armeabi 和 armeabi-v7a 二进制文件,那么您可以在 Android.mk 中执行类似“APP_ABI := armeabi armeabi-v7a”的操作
  • 实际上我使用 Marmalade SDK 进行开发,我的单个二进制文件将同时用于 iOS 和 Android。我有编译为静态库的子项目。对于 Android,我选择 ARMv6,对于 iOS 6,我选择 ARMv7。但我不确定是否必须重建在 ARMv6 中编译的子项目,以便与 iOS 的 ARMv7 代码链接。

标签: android ios6 static-linking armv7 armv6


【解决方案1】:

Android 支持使用 ARMv6 和 ARMv7 构建胖二进制文件。

但 ARMv7 设备上的 Android 4.0 存在错误,即使 ARMv7 可用,它也会加载 ARMv6 库。 您必须以不同的方式命名库。 解析 /proc/cpu 文件并获取有关 cpu 的信息并按名称加载正确的库。

Android NDK 有检测 CPU 的示例代码。

【讨论】:

    猜你喜欢
    • 2011-07-16
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 2012-10-21
    • 2012-01-09
    • 2012-03-24
    • 1970-01-01
    相关资源
    最近更新 更多