我正在尝试在Ubuntu机器上为Android ARMV7编译OpenSSL 1.1.0(k)。但是,我只能编译android、android-armabi和android64(-aarch64)这些目标。
我尝试的内容(在openssl-1.1.0k文件夹中):
export AR=~/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc-ar
export CC=~/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc
export LD=~/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ld
export RANLIB=~/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc-ranlib
export ANDROIDNDKVER=r11c
export ANDROIDAPI=24
export CROSS_SYSROOT=~/android-ndk-r11c/platforms/android-24/arch-arm64
export ANDROID_DEV=~/android-ndk-r11c/platforms/android-24/arch-arm64/usr/
export SYSROOT=~/android-ndk-r11c/platforms/android-24/arch-arm64/usr/
export PATH=$PATH:~/android-ndk-r11c/platforms/android-24/arch-arm64/usr/
现在,当我列出目标时,使用以下命令:
./Configure LIST
未提及 Armv7。我期望有一个名为 android-armv7 的目标,就像我在 openssl-1.0.2l 目录中输入相同命令时一样。
我错过了什么?或者如何编译与 armv7 Android 手机兼容的 OpenSSL-1.1.0 版本?
即使使用 NDK r18b 或 android-28,也无法解决问题,甚至使用 arch-arm64 代替 arch-arm 也不行。
背景:现在我正在使用的框架(Qt 5.13)需要 OpenSSL 1.1.0,并且它可以在某些手机上运行,例如 HTC 10(armv8 64-bit),但在 LG K7(armv7 32-bit)和 Amazon Fire 平板电脑上无法运行。
谢谢。