首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使find_package( opencv )在opencv 3.3rc上用于android:

无法使find_package( opencv )在opencv 3.3rc上用于android:
EN

Stack Overflow用户
提问于 2017-07-13 08:05:08
回答 1查看 339关注 0票数 1

我正在尝试集成新的Opencv3.3rc标记,以使用OpenCV dnn模块。https://github.com/opencv/opencv/tree/3.3.0-rc

我可以交叉编译OpenCV库,但是当我试图使FindOpencv必需时,我有以下错误:

在已经定义的导出集中,有些(但不是全部)目标。

注册的唯一目标是cpufeatures,如您所见:

代码语言:javascript
复制
  Targets Defined: cpufeatures
  Targets not yet defined:
  libtiff;libjpeg;libwebp;libjasper;libpng;IlmImf;tegra_hal;libprotobuf;opencv_core;opencv_flann;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_video;opencv_dnn;opencv_imgcodecs;opencv_shape;opencv_videoio;opencv_highgui;opencv_superres;opencv_features2d;opencv_calib3d;opencv_java;opencv_stitching;opencv_videostab

正如我在OpenCVconfig.cmake配置文件中所看到的,目前有两种方法可以找到OpenCV:

这是:

代码语言:javascript
复制
find_package(OpenCV REQUIRED)

或定义模块:

代码语言:javascript
复制
find_package(OpenCV REQUIRED core videoio)

但它们都不起作用。

错误来自于这个代码片段OpenCVModules.cmake。

代码语言:javascript
复制
# Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1)

# Protect against multiple inclusion, which would fail when already imported targets are added once more.
set(_targetsDefined)
set(_targetsNotDefined)
set(_expectedTargets)
foreach(_expectedTarget cpufeatures libtiff libjpeg libwebp libjasper libpng IlmImf tegra_hal libprotobuf opencv_core opencv_flann opencv_imgproc opencv_ml opencv_objdetect opencv_photo opencv_video opencv_dnn opencv_imgcodecs opencv_shape opencv_videoio opencv_highgui opencv_superres opencv_features2d opencv_calib3d opencv_java opencv_stitching opencv_videostab)
  list(APPEND _expectedTargets ${_expectedTarget})
  if(NOT TARGET ${_expectedTarget})
    list(APPEND _targetsNotDefined ${_expectedTarget})
  endif()
  if(TARGET ${_expectedTarget})
    list(APPEND _targetsDefined ${_expectedTarget})
  endif()
endforeach()
if("${_targetsDefined}" STREQUAL "${_expectedTargets}")
  unset(_targetsDefined)
  unset(_targetsNotDefined)
  unset(_expectedTargets)
  set(CMAKE_IMPORT_FILE_VERSION)
  cmake_policy(POP)
  return()
endif()
if(NOT "${_targetsDefined}" STREQUAL "")
  message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n")
endif()

有人知道怎么会发生这种事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-14 08:09:38

我找到了答案:

我之前定义了cpu特性库,所以这段代码是CMakelists.txt中冲突的部分。

代码语言:javascript
复制
add_library(cpufeatures STATIC
            ${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c)

除去这一部分,问题就解决了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45074861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档