0

我目前使用-mfloat-abi=softfp -mfpu=vfp

我认为上述行需要具有真正 VFP 支持的 ARMV6 设备。

如果我使用-mfloat-abi=soft怎么办?这在没有真正 VFP 支持但比不指定​​更快的 ARMV6 设备上是否有效mfloat-abi

(我不想用 2 个 .so 文件创建一个胖二进制文件)

4

1 回答 1

0

gcc 信息页面说:

指定soft会使 GCC 生成包含浮点运算的库调用的输出。 softfp允许使用硬件浮点指令生成代码,但仍使用软浮点调用约定。 hard允许生成浮点指令并使用特定于 FPU 的调用约定。

因此soft,对于具有 FPU 的目标,使用并不是您想要的。

大多数当前出货的设备都有 ARMv7-A 或更好的 CPU,所以除非您针对特定设备,否则我不确定构建两个共享库有多大价值。

更新:实际上有很多设备都带有较旧的 CPU。所有的高端产品都是 ARMv7-A,但低端设备的容量很大。

ARMv6 + VFP 不是 Play 商店支持的配置——目标是使配置集尽可能小。您需要使用胖二进制文件,或者(就像您正在做的那样)仔细配置您的构建并在 Play Store 中列出特定设备。

于 2013-08-14T17:29:55.460 回答