android - 为 Android ARMV7 编译 OpenSSL 1.1.0

标签 android qt ubuntu 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/

现在当我列出目标时

./Configure LIST

没有提到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 平板电脑上它无法正常工作。

谢谢,

最佳答案

我没有尝试使用 OpenSSL 1.1.0,但我对 Qt 5.12.41.1.1c 做了同样的事情。 我用了 guide我发现可以为 32 位和 64 位的 android 编译它。

此外,32bit 基本上是 android-armeabi,因此请将其用于架构类型。 您还可以找到更多信息和已编译的库 here .

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

同时确保使用较新的 NDK,基于您使用的 r11c 的代码有点太旧了。对于 Qt 5.13.0,您至少需要 19c,因此使用相同的版本进行编译。

关于android - 为 Android ARMV7 编译 OpenSSL 1.1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57216046/

相关文章:

c++ - QML TreeView 按级别或自定义委托(delegate)显示节点

c++ - Qt4.8 : Why enum not seen in qmetaobject? 以及如何工作?

linux - 在 Ubuntu 13.10 上找不到 -lGL

python - python独立开发应该选择docker吗?

c++ - 滚动条Qt,无法滚动

Java 字节码到 .dex 或 .apk 不起作用...该怎么办?

android - Android:播放来自SDK的声音

java - 使用 Kotlin 从 fragment A 调用 fragment B 的方法

ruby-on-rails - 我应该升级 - jaunty 9.0.4 服务器 - 因为它不是 LTS?

android - handler.postdelayed() 毫秒在 Activity onResume() 后自动更改