为Android ARMV7编译OpenSSL 1.1.0

Aam*_*ood 7 ubuntu qt android openssl armv7

我正在尝试在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/
Run Code Online (Sandbox Code Playgroud)

现在当我列出目标

./Configure LIST
Run Code Online (Sandbox Code Playgroud)

没有提到Armv7。当我在openssl-1.0.2l目录中输入相同的命令时,我希望有一个名为android-armv7的目标。

我想念什么?或者,如何在armv7 Android手机的兼容版本中编译Openssl-1.1.0?

同样使用NDK r18b或android-28并不能解决问题,甚至无法使用arch-arm代替arch-arm64。

背景:我现在使用的框架(Qt 5.13)要求使用OpenSSL 1.1.0,并且它可以在某些移动设备上使用。类似于HTC 10(armv8 64位),但在LG K7(armv7 32位)和Amazon Fire平板电脑上,它无法正常工作。

谢谢,

Meg*_*ued 1

我没有尝试过,但我对forOpenSSL 1.1.0做了同样的事情。我使用了我找到的指南来为 android(32 位和 64 位)编译它。1.1.1cQt 5.12.4

32bit基本上也android-armeabi将其用于架构类型。您还可以在此处找到更多信息和已编译的库。

我测试了使用链接指南编译的 32 位和 64 位库,我可以说它们正在工作。

另外,请确保使用较新的版本NDK,因为您使用的代码r11c有点太旧了。因为Qt 5.13.0你至少需要19c,所以使用相同的来编译。