【发布时间】:2017-08-30 10:38:33
【问题描述】:
我对使用 NDK/CMake 的 Android 还是很陌生。但是,我正在尝试将本机 CMake 库嵌入到 Android 应用程序中。但是,这个库依赖于 OpenSSL。
这就是我下载 OpenSSL for Android 预编译版本的原因。
但是,当我尝试同步项目时,出现以下错误:
Could NOT find OpenSSL, try to set the path to OpenSSL root folder
in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES)
(found version "1.1.0f")
这是我的(最小)项目结构
<app-name>
-app
- src
- main
- cpp
- library
- CMakeLists.txt
CMakeLists.txt
- distribution
- openssl
- armeabi
- include
- openssl
...
- lib
libcrypto.a, libssl.a
在我的 build.gradle 中,我定义了以下内容:
externalNativeBuild {
cmake {
path 'src/main/cpp/CMakeLists.txt'
}
}
/app/src/main/cpp/CmakeLists.txt 如下:
cmake_minimum_required(VERSION 3.4.1)
set(distribution_DIR ${CMAKE_SOURCE_DIR}/../../../../distribution)
set(OPENSSL_ROOT_DIR ${distribution_DIR}/openssl/${ANDROID_ABI})
set(OPENSSL_LIBRARIES "${OPENSSL_ROOT_DIR}/lib")
set(OPENSSL_INCLUDE_DIR ${OPENSSL_ROOT_DIR}/include)
message("OPENSSL_LIBRARIES ${OPENSSL_LIBRARIES}")
message("OPENSSL_INCLUDE_DIR ${OPENSSL_INCLUDE_DIR}")
find_package(OpenSSL REQUIRED)
add_subdirectory(library)
【问题讨论】:
-
使用这个:link 它会帮助你...
标签: android c++ cmake android-ndk