如何使用NDK 17为64位Android构建OpenSSL 1.1.1 [英] How to build OpenSSL 1.1.1 for 64 bit Android using NDK 17
问题描述
无法为64位Android构建OpenSSL.这是我已采取的步骤:
Failing to build OpenSSL for 64bit Android. Here are the steps I've taken:
- 从 https://wiki.openssl下载了
setenv_android.sh
.org/images/7/70/Setenv-android.sh - 从
https ://www.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz - 解压缩tar文件
-
修改了setenv_android脚本,以便运行它会产生以下输出:
- Downloaded the
setenv_android.sh
from https://wiki.openssl.org/images/7/70/Setenv-android.sh - Downloaded OpenSSL 1.1.1 from https://www.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz
- Unpacked the tar file
Modified the setenv_android script so that running it produced this output:
ANDROID_NDK_ROOT: /Users/spartygw/android-ndk-r17
ANDROID_ARCH: arch-arm64
ANDROID_EABI: aarch64-linux-android-4.9
ANDROID_API: android-22
ANDROID_SYSROOT: /Users/spartygw/android-ndk-r17/platforms/android-22/arch-arm64
ANDROID_TOOLCHAIN: /Users/spartygw/android-ndk-r17/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin
FIPS_SIG:
CROSS_COMPILE: aarch64-linux-android-
ANDROID_DEV: /Users/spartygw/android-ndk-r17/platforms/android-22/arch-arm64/usr
使用以下命令配置openssl:./Configure no-rc5 no-idea no-md2 no-cast linux-aarch64
Ran make depend; make
输出:
In file included from crypto/aes/aesv8-armx.S:1:
crypto/arm_arch.h:55:6: error: "unsupported ARM architecture"
# error "unsupported ARM architecture"
^
1 error generated.
make[1]: *** [crypto/aes/aesv8-armx.o] Error 1
make: *** [all] Error 2
这篇文章听起来像是我遇到了这个问题并停了下来.我向您保证,我已经花了一个完整的工作日来尝试各种事情,但都无济于事.我不想用我尝试过的垃圾乱扔问题(传递不同的ARM_ARCH值,尝试其他版本的openSSL,尝试不同的NDK).
This writeup makes it sound like I ran into this problem and stopped. I assure you I've spent a complete workday trying various things and googling to no avail. I don't want to litter the question with junk that I tried (passing in different ARM_ARCH values, trying other versions of openSSL, trying different NDKs).
推荐答案
OpenSSL Wik上的脚本和示例已经过时了.特定的构建脚本不支持arm64.
The scripts and examples on OpenSSL Wik are badly outdated. The specific build script does not support arm64.
幸运的是,GitHub可以挽救:尝试 https://github.com/noloader/Android-PRNG/blob/master/setenv-android.sh .
Luckily, GitHub comes to rescue: try https://github.com/noloader/Android-PRNG/blob/master/setenv-android.sh.
这篇关于如何使用NDK 17为64位Android构建OpenSSL 1.1.1的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!