【发布时间】:2019-06-29 10:14:36
【问题描述】:
未能为 64 位 Android 构建 OpenSSL。以下是我采取的步骤:
- 从https://wiki.openssl.org/images/7/70/Setenv-android.sh下载了
setenv_android.sh - 从https://www.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz下载了OpenSSL 1.1.1
- 解压 tar 文件
-
修改了 setenv_android 脚本,以便运行它产生以下输出:
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跑
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)。
【问题讨论】:
-
此构建脚本不支持 arm64。试试github.com/noloader/Android-PRNG/blob/master/setenv-android.sh
-
@AlexCohn 非常感谢。使用您的脚本,我能够正确构建。如果您想提交作为答案,我会接受。
标签: android android-ndk openssl