小编stm*_*stm的帖子

在本机 Android 项目中包含 openssl 库

我想为 android 的 openssl 库创建包装模块,它将使用大多数主要功能来保证安全。

我知道有人说他们已经做到了并在 github 上发布了他们的工作,但出于安全原因我们无法使用它。

我将 openssl 库编译到 android 并添加到 CMakeList.txt,如下所述: https ://developer.android.com/studio/projects/configure-cmake#add-other-library

我所做的步骤: 1.我从这里下载: https: //www.openssl.org/source/ version 1.1.1c
2.编译成功:

export ANDROID_NDK_HOME=/home/user/Android/Sdk/ndk-bundle
PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
./Configure android-arm64
make
Run Code Online (Sandbox Code Playgroud)
  1. 我将整个文件夹放在这里:
    Project/app/src/main/cpp/openssl-1.1.1c

4.这就是 CMakeList 的样子:

cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_VERBOSE_MAKEFILE ON)
add_library(openssl-wrapper-lib
        SHARED
        openssl-c-wrapper.cpp)

#===v===v===v===v===v===v===openssl-include===v===v===v===v===v===v===
add_library(
        crypto
        SHARED
        IMPORTED
)

set_target_properties(
        crypto
        PROPERTIES IMPORTED_LOCATION
        ${CMAKE_CURRENT_SOURCE_DIR}/openssl-1.1.1c/libcrypto.so
)

include_directories(openssl-1.1.1c/include)
#===^===^===^===^===^===^===openssl-include===^===^===^===^===^===^===

find_library(log-lib
        log)

target_link_libraries( # Specifies the target library.
        openssl-wrapper-lib
        crypto
        ${log-lib})
Run Code Online (Sandbox Code Playgroud)

我构建时的错误是这样的:

Error while executing process /home/user/Android/Sdk/cmake/3.6.4111459/bin/cmake with arguments {--build /home/user/AndroidStudioProjects/EncryptionModule/app/.externalNativeBuild/cmake/debug/x86_64 --target openssl-wrapper-lib}
[1/1] Linking …
Run Code Online (Sandbox Code Playgroud)

openssl android-ndk

3
推荐指数
1
解决办法
3187
查看次数

标签 统计

android-ndk ×1

openssl ×1