首页 > 解决方案 > android opencv 3.4.1 构建命令失败。未定义的引用

问题描述

我正在尝试使用stitching.hpp中的opencv cpp方法Stitcher,但我仍然收到错误。看起来我没有函数定义,但不知道为什么。我设置了我的 CMakeList.txt:

set(pathToProject C:/Users/Filip/AndroidStudioProjects/PanoStich)
set(pathToOpenCV C:/Users/Filip/Downloads/OpenCV-android-sdk)

cmake_minimum_required(VERSION 3.4.1)

set(CMAKE_VERBOSE_MAKEFILE on)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -v")
include_directories(${pathToOpenCV}/sdk/native/jni/include/)

add_library( 
             native-lib
             SHARED
             src/main/cpp/native-lib.cpp )

add_library( lib_opencv SHARED IMPORTED )

set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${pathToProject}/app/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so)

find_library( 
              log-lib
              log )

target_link_libraries(
                   native-lib
                   lib_opencv
                   $\{log-lib} )

我得到的错误在下面的图片上

构建时返回错误

工作站:Macbook Pro、Virtual Windows 64b、Android Studio、Opencv4Mobile 3.4.1

标签: javaandroidc++opencvopencv4android

解决方案


这是从 3.4.1 开始的 opencv for android 中的一个已知问题。这是由于没有为拼接模块构建 java 包装器。即使在 3.4.3 中也存在此问题。我能找到的唯一解决方案是为 android 构建 opencv。下载源代码后,在 opencv _src_dir/modules/stitching 下找到 CMakeList.txt 并将 java 添加到 WRAP。

opencv 问题 - https://github.com/opencv/opencv/issues/11595

我仍在为 android 构建 opencv 的过程中。如果您找到任何其他解决方案,请告诉我们。


推荐阅读