JNI 相关CmakeList.txt 配置
程序员文章站
2021-12-29 11:56:43
首先需要进入当前Module的Gradle.Build 设置编译CmakeList 及 cpp的编译环境defaultConfig {// externalNativeBuild {//// cmake {//// cppFlags "-frtti -fexceptions"//// }// cmake {// cppFlags "-s....
首先需要进入当前Module的Gradle.Build 设置编译CmakeList 及 cpp的编译环境
defaultConfig {
// externalNativeBuild { cmake { cppFlags "-frtti -fexceptions" } // cmake { // cppFlags "-std=c++11 -frtti -fexceptions" // 根据情况设置 // abiFilters 'arm64-v8a' // 根据情况设置 'x86', 'armeabi-v7a', 目前orc 只支持识别 // } // }
}
android{
//方法 2 // externalNativeBuild { // cmake { // path "CMakeLists.txt" // } // }
} # For more information about using CMake with Android Studio, read the # documentation: https://d.android.com/studio/projects/add-native-code.html # Sets the minimum version of CMake required to build the native library. #设置OpenCv sdk的路径变量 eg: Users/apple/Downloads/OpenCV-android-sdk/ set(pathToOpenCv E:/AS/xxx/OpenCV-android-sdk) #so库的输出路径 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/libs/${ANDROID_ABI}) cmake_minimum_required(VERSION 3.4.1) #支持-std=gnu++11 set(CMAKE_VERBOSE_MAKEFILE on) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") #配置加载native依赖 include_directories(${pathToOpenCv}/sdk/native/jni/include) #动态方式加载 add_library(lib_opencv STATIC IMPORTED ) #引入libopencv_java3.so文件 set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so ) # 定义添加第三方so的路径 path_to_so set(path_to_so E:/AS/xxx/app/libs) #动态方式加载 add_library(libspen STATIC IMPORTED ) #设置 libseetanet2.so 库 set_target_properties(libspen PROPERTIES IMPORTED_LOCATION ${path_to_so}/${ANDROID_ABI}/xxx.so) #官方配置 隐藏 #find_package(OpenCV REQUIRED) # Creates and names a library, sets it as either STATIC # or SHARED, and provides the relative paths to its source code. # You can define multiple libraries, and CMake builds them for you. # Gradle automatically packages shared libraries with your APK. # 自己的源文件 设置库名称 add_library( # Sets the name of the library. native-lib # Sets the library as a shared library. SHARED # Provides a relative path to your source file(s). src/main/cpp/native-lib.cpp #src/main/cpp/xxx.h ) # Searches for a specified prebuilt library and stores the path as a # variable. Because CMake includes system libraries in the search path by # default, you only need to specify the name of the public NDK library # you want to add. CMake verifies that the library exists before # completing its build. find_library( # Sets the name of the path variable. log-lib # Specifies the name of the NDK library that # you want CMake to locate. log ) # Specifies libraries CMake should link to your target library. You # can link multiple libraries, such as libraries you define in this # build script, prebuilt third-party libraries, or system libraries. # 链接库 target_link_libraries( # Specifies the target library. native-lib OpenSLES libspen # Links the target library to the log library # included in the NDK. ${log-lib} android -ljnigraphics lib_opencv)
本文地址:https://blog.csdn.net/qq_32216895/article/details/108143569
上一篇: 隐马尔可夫模型的样本生成_CodingPark编程公园
下一篇: Python从基础到精通day8