为什么Android NDK对32位和64位ABI使用不同的GCC版本?

时间:2015-07-27 09:18:49

标签: android gcc android-ndk

来自docs(强调我的):

  

使GCC 4.8成为所有32位ABI的默认值。不推荐使用GCC 4.6,和   将在下一个版本中删除它。要恢复以前的行为,请添加   NDK_TOOLCHAIN_VERSION = 4.6到ndk-build,或者添加    - 在命令行上执行make-standalone-toolchain.sh时,totochain = arm-linux-androideabi-4.6。 GCC 4.9仍然是   默认为64位ABI

具体来说,有没有理由不将GCC 4.9用于32位ABI?我们需要std::regex支持,仅在4.9中添加。

1 个答案:

答案 0 :(得分:3)

这可能主要是出于实际原因。 32位的默认版本滞后一点,因为旧版本更加经过验证,如果没有直接问题,他们可能更愿意继续使用它们。

对于64位ABI,特别是aarch64,旧版GCC版本的支持可能还不够成熟。此外,这些ABI之前根本没有得到支持,所以没有回归的风险,因为它是一个全新的配置。

如果您需要GCC 4.9中的功能,只需添加NDK_TOOLCHAIN_VERSION=4.9即可。原则上不应该有任何问题,但是如果有的话我肯定他们喜欢听到有关它的报道,如果你遇到任何问题。