【发布时间】:2018-03-11 21:07:59
【问题描述】:
我有一个使用 OpenCV 的 android 项目,我需要使用原生 C++ 代码中的 OpenCV。但我有问题,配置 cmake 以链接库。我对cmake一无所知,也不了解gradle。
我找到了一些建议,并尝试自己编写 CMakeLists.txt,但没有成功。目前,我的 CMakeLists.txt 看起来像:
cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_VERBOSE_MAKEFILE on)
add_library(cpp_native_code SHARED src/main/cpp/jni_interface.cpp)
# find all other source files
file ( GLOB cpp_code_files src/main/cpp/*.cpp src/main/cpp/*.hpp )
# add then to project
target_sources(cpp_native_code PUBLIC ${cpp_code_files})
find_library(log-lib log)
target_link_libraries(cpp_native_code ${log-lib})
set(path_to_opencv C:/Programs/OpenCV_Android_SDK)
include_directories(${path_to_opencv}/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)
target_link_libraries( cpp_native_code lib_opencv )
当我尝试运行我的项目时,我收到此错误:
Error:error: '../../../../src/main/jniLibs/arm64-v8a/libopencv_java3.so',
needed by '../../../../build/intermediates/cmake/debug/obj/arm64-
v8a/libcpp_native_code.so', missing and no known rule to make it
我正在使用 OpenCV 3.3.0。如果需要,我提供我的项目结构的屏幕截图here。直接从 android 使用 OpenCV 即可工作。
拜托,有人能告诉我,我做错了吗?或者如果有一些信息,我没有写,哪些是重要的。
谢谢你的建议。
【问题讨论】:
标签: android opencv android-ndk native opencv3.0