【问题标题】:How to build OpenSSL 1.1.1 for 64 bit Android using NDK 17如何使用 NDK 17 为 64 位 Android 构建 OpenSSL 1.1.1
【发布时间】:2019-06-29 10:14:36
【问题描述】:

未能为 64 位 Android 构建 OpenSSL。以下是我采取的步骤:

  1. https://wiki.openssl.org/images/7/70/Setenv-android.sh下载了setenv_android.sh
  2. https://www.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz下载了OpenSSL 1.1.1
  3. 解压 tar 文件
  4. 修改了 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
    
  5. 将 openssl 配置为:./Configure no-rc5 no-idea no-md2 no-cast linux-aarch64

  6. 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)。

【问题讨论】:

标签: android android-ndk openssl


【解决方案1】:

OpenSSL Wik 上的脚本和示例已经严重过时。具体构建脚本不支持arm64。

幸运的是,GitHub 来救援:试试https://github.com/noloader/Android-PRNG/blob/master/setenv-android.sh

【讨论】:

  • 当我执行此脚本时,我收到以下错误:错误:AOSP_STL_LIB 无效。请编辑此脚本。我的路径如下所示: AOSP_STL_LIB: /Users/dad/Library/Android/sdk/ndk-bundle/sources/cxx-stl/stlport/libs/armeabi/libstlport_shared.so 你知道我必须改变什么才能做到吗工作吗?
  • @Dariusch,在当前的 NDK 版本中,您只能使用 llvm-staticllvm-shared,其他 STL 变体已从 NDK 中删除。请注意,mipsarmeabi 也已被删除。
猜你喜欢
  • 2018-08-24
  • 1970-01-01
  • 2019-07-06
  • 2019-03-14
  • 2011-02-26
  • 2015-03-17
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多