2016-12-15 2 views
0

Я использую собственный код и открываю cv в проекте студии Android с помощью ndk-build, но я хочу использовать cmake. скажите, как установить эти вещи в файле cmakelists.txt. это мой Android.mk файлДобавить opencv в cmakelists.txt android

LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 

OpenCV_INSTALL_MODULES:=on 
OPENCV_CAMERA_MODULES:=off 
OPENCV_LIB_TYPE:=STATIC 

ifeq ("$(wildcard $(OPENCV_MK_PATH))","") 
include D:/OpenCV-3.1.0-android-sdk/sdk/native/jni/OpenCV.mk 
else 
include $(OPENCV_MK_PATH) 
endif 

LOCAL_MODULE := module_name 

LOCAL_CFLAGS := -DANDROID_NDK \ 
       -DDISABLE_IMPORTGL 

LOCAL_SRC_FILES := src/main/cpp/test.cpp 

LOCAL_LDLIBS += -lm -llog -ljnigraphics 
include $(BUILD_SHARED_LIBRARY) 

, как установить эти вещи в CMake

ответ

2

Это слишком поздно, но кто-то может оказаться полезным. Сначала разместите libopencv_java.so для opencv 2 или libopencv_java3.so для oepncv3 в папке app/src/main/jniLibs под другой архитектурой, добавьте, если у вас также есть linonfree.so в папку jniLibs. Свяжите cmake с градиентом.
Это CmakeLists.

cmake_minimum_required(VERSION 3.4.1) 
     set(EXECUTABLE_OUTPUT_PATH  "${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}") 
    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) 
#the nonfree optional if you have build the nonfree.so of the xfeature2d module  
add_library(# Sets the name of the library 
      nonfree 
      # Sets the library as shared library. 
      SHARED 
      # indicate the library is prebuilt. 
      IMPORTED) 
set_target_properties(# Specifies the targeted library. 
         nonfree 
         # Specifies the parameter you want to define. 
          PROPERTIES IMPORTED_LOCATION 
         # Specifies the location of the library. 
         ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libnonfree.so) 
    include_directories(C:/Users/what/Documents/OpenCV-android-sdk/sdk/native/jni/include) 
    add_library(lib-opencv SHARED IMPORTED) 
    set_target_properties(lib-opencv PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so) 
    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) 
    target_link_libraries(# Specifies the target library. 
          native-lib 
          # prebuilt library nonfree. 
          nonfree 
          # prebuilt library opencv java. 
          lib-opencv 
          # Links the target library to the log library 
          # included in the NDK. 
          ${log-lib}) 

Установите путь папки jniLis.srcDirs в файле build.gradle (app).

sourceSets { 
    main { 
     // let gradle pack the shared library into apk 
     jniLibs.srcDirs = ['src/main/jniLibs'] 
    } 
    } 
Смежные вопросы