编译opencv示例:未知的cmake命令ocv_check_dependencies

时间:2012-10-30 19:53:31

标签: opencv cmake osx-snow-leopard

我正在尝试构建源代码包附带的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” - 但是如何?我迷路了!

8 个答案:

答案 0 :(得分:16)

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

  

OCV_OPTION(BUILD_EXAMPLES“构建所有示例”

-DBUILD_EXAMPLES=ON对我来说很好。

答案 1 :(得分:15)

我明白了。

为了构建样本,必须通过-D提供cmake的默认配置。我做错了是我尝试从samples目录中执行cmake。

构建示例的正确方法是调用类似的cmake(从解压缩的归档的根目录中):

cmake -DBUILD_SAMPLES .

将打开样品。可以继续使用make,make install。建筑后可以在bin找到样本。

另见FAQ

答案 2 :(得分: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

适合我。

googled from this link

答案 3 :(得分:1)

mydragonisland的构建说明几乎对我有用;有一个小的重新排序和包括口音:

g++ facedetect.cpp -o facedetect `pkg-config --libs opencv`

答案 4 :(得分: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 /的文件的'include'命令。这就是为什么在通过从opencv源的根调用cmake进行编译时宏可用的原因。

答案 5 :(得分:1)

原因

错误消息上下文:

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

发生此错误消息是因为cmake无法找到ocv_check_dependencies的定义

这就是控制台说未知CMake命令

的原因

解决方案

如果cmake找不到定义ocv_check_dependencies的位置

就像@Nick Hockings说的那样:

ocv_check_dependenciesYour/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终于可以理解它是什么了

这应该可以解决问题,我希望将来没有其他人会为这个问题烦恼

答案 6 :(得分:0)

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

答案 7 :(得分:0)

以下步骤适合我。

导出工具链路径。

cd opencv-3.3.0 / samples

cross_cmake&& cross_make

cd opencv-3.3.0 / samples / cpp /