14

我正在尝试构建源包附带的 OpenCV 示例,我得到以下信息:

CMake Error at CMakeLists.txt:10 (ocv_check_dependencies):
  Unknown CMake command "ocv_check_dependencies".

我确实使用安装了 OpenCV

cmake .
make
sudo make install

我得到了一个教程片段(因此我认为它作为一个库正确安装)。但是,编译示例不起作用。

我想我必须以某种方式将 CMake 配置为具有“ocv_check_dependencies” - 但是如何?我搞不清楚了!

4

8 回答 8

21

实际上对于 OpenCV 2.4.4 beta,根 CMakeList.txt 文件说:

OCV_OPTION(BUILD_EXAMPLES "构建所有示例"

-DBUILD_EXAMPLES=ON对我来说工作得很好。

于 2013-04-10T21:58:55.200 回答
16

我得到了它。

为了构建示例,必须通过提供 cmake 来更改默认配置-D。我做错的是我试图从samples目录中执行 cmake 。

构建示例的正确方法是像这样调用 cmake(从解压存档的根目录中):

cmake -DBUILD_SAMPLES .

这将打开样本。可以使用 make 进行安装,然后进行安装。样本可以在bin构建后找到。

另请参阅

于 2012-10-31T15:29:34.137 回答
3

如何编译 OpenCV 示例代码?

# For OpenCV 3 
cd /path/to/opencv/samples/cpp/
#Compile
g++ -ggdb `pkg-config --cflags --libs opencv` facedetect.cpp -o facedetect
#run
./facedetect

为我工作。

从这个链接谷歌搜索

于 2015-08-18T01:55:46.900 回答
1

mydragonisland 的构建说明几乎对我有用;稍微重新排序并包括重音:

g++ facedetect.cpp -o facedetect `pkg-config --libs opencv`
于 2015-09-08T10:05:14.373 回答
1

宏 'ocv_check_dependencies' 定义在:your_path_to/opencv/cmake/OpenCVModule.cmake

# ensures that all passed modules are available
# sets OCV_DEPENDENCIES_FOUND variable to TRUE/FALSE
macro(ocv_check_dependencies)
  set(OCV_DEPENDENCIES_FOUND TRUE)
  foreach(d ${ARGN})
    if(d MATCHES "^opencv_[^ ]+$" AND NOT HAVE_${d})
      set(OCV_DEPENDENCIES_FOUND FALSE)
      break()
    endif()
  endforeach()
endmacro()

顶层 CMakeLists.txt 包含来自 opencv/cmake/ 文件的“包含”命令。这就是为什么当您通过从 opencv 源的根目录调用 cmake 进行编译时宏可用的原因。

于 2015-10-30T14:28:20.373 回答
1

原因

错误消息上下文:

CMake Error at CMakeLists.txt:10 (ocv_check_dependencies):
  Unknown CMake command "ocv_check_dependencies".

出现此错误消息是因为 cmake 找不到ocv_check_dependencies

这就是为什么控制台说Unknown CMake command

解决方案

如果cmake找不到ocv_check_dependencies定义的地方

就像@Nick Hockings 说的:

ocv_check_dependencies是一个宏定义在Your/OpenCV/path/OpenCVModule.cmake

macro(ocv_check_dependencies)
  set(OCV_DEPENDENCIES_FOUND TRUE)
  foreach(d ${ARGN})
    if(d MATCHES "^opencv_[^ ]+$" AND NOT HAVE_${d})
      set(OCV_DEPENDENCIES_FOUND FALSE)
      break()
    endif()
  endforeach()
endmacro()

最快的方法是将上面的这段代码复制到你的CMakeList.txt文件ocv_check_dependencies

因此,cmake终于可以明白它是什么了

那应该可以解决问题,我希望将来没有其他人会打扰这个问题

于 2017-09-01T04:28:38.817 回答
0

我有类似的错误。我的方法如下: 1) cd xxx/samples 2) mkdir build 3) cd build 4) cmake .. 5) make 现在它可以工作了。我们无法在其源文件下构建单个项目。

于 2016-12-13T20:52:02.463 回答
0

以下步骤对我有用。

导出工具链路径。

cd opencv-3.3.0/samples

cross_cmake && cross_make

cd opencv-3.3.0/samples/cpp/

于 2017-12-22T09:38:20.877 回答