【问题标题】:is it safe to replace armeabi-v7a with armeabi-v7a-hard?用 armeabi-v7a-hard 替换 armeabi-v7a 是否安全?
【发布时间】:2015-08-17 08:41:09
【问题描述】:

我认为所有支持 armeabi-v7a 的设备都应该能够支持 armeabi-v7a-hard。如果是这样,我们为什么不直接放弃 armeabi-v7a 或者只使用 armeabi-v7a-hard 来替换 armeabi-v7a 以实现 >=xx(9c?)

【问题讨论】:

    标签: android android-ndk


    【解决方案1】:

    -msoft-float 和 -mhard-float 不在硬件和软件浮点之间切换。

    实际的区别在于参数如何传递给函数的调用约定。

    这意味着 -mhard-float 只是稍微快一点(两者都使用硬件浮点实现),但 -msoft-float 具有更好的 ABI 兼容性。

    如需完整概述,请参阅此博文: http://blog.alexrp.com/2014/02/18/android-hard-float-support/ (或网络存档上的backup。)

    更新 硬浮动 ABI 现在由 Google 提供为 deprecated

    【讨论】:

    • 在什么情况下 -msoft-float 可以,而 -mhard-float 对 armeabi-v7a abi 有问题?看来只要NDK支持-mhard-float,它们的兼容性是一样的。也就是说,使用 armeabi-v7a-hard 替换 armeabi-v7a 以实现 NDK >9c 是安全的。为什么 NKD 不直接替换?
    • 来自链接文章:“要使用硬浮点 ABI,您必须将应用程序的每个最后一个组件编译为硬浮点(-mhard-float GCC/Clang 开关),或者使用适当的 属性 来指示所需的 ABI。”如果您不链接任何二进制库,则可以。
    • 博文已死
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 2012-08-26
    • 1970-01-01
    • 2016-11-23
    • 2019-11-25
    • 2016-01-23
    • 2011-10-28
    相关资源
    最近更新 更多