找不到模块FindOpenCV.cmake(配置过程中出错)

Jav*_*ock 52 opencv cmake

CMakeLists.txtC++中编写了一个使用OpenCV库的项目.当我尝试使用cmake创建项目时,我遇到了下一个配置问题:

CMake Error at CMakeLists.txt:15 (find_package):
  Could not find module FindOpenCV.cmake or a configuration file for package
  OpenCV.

  Adjust CMAKE_MODULE_PATH to find FindOpenCV.cmake or set OpenCV_DIR to the
  directory containing a CMake configuration file for OpenCV.  The file will
  have one of the following names:

    OpenCVConfig.cmake
    opencv-config.cmake
Run Code Online (Sandbox Code Playgroud)

事实是我有一个环境变量用于我在Visual Studio中使用的路径没有问题.如果我不包含OpenCV,那么我可以配置和生成没有问题,但我需要解决问题.我不明白为什么cmake找不到OpenCV路径或如何解决它.

我还使用了此链接中提到的建议: FindOpenCV.cmake

有人也有这个问题吗?

ala*_*nxz 34

您看到的错误是CMake无法找到FindOpenCV.cmake文件,因为cmake不包含一个开箱即用的文件.因此,您需要找到一个并将其放在cmake可以找到它的位置:

你可以在这里找到一个好的开始.如果你喜欢冒险,你也可以写自己的.

然后在项目中的某处添加它并调整CMAKE_MODULE_PATH以便cmake可以找到它.

例如,如果你有

CMakeLists.txt
cmake-modules/FindOpenCV.cmake
Run Code Online (Sandbox Code Playgroud)

然后你应该做一个

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules)
Run Code Online (Sandbox Code Playgroud)

在执行find_package(OpenCV)之前的CMakeLists.txt文件中

  • 谢谢,但我已经尝试了所有这些.我从有类似问题的人那里阅读论坛,他们建议设置路径.我下载了FindOpenCV,我用路径定义了变量,我将OpenCV文件夹移动到不同的路径,我直接链接了opencvConfig.cmake,但错误总是一样的.cmake找不到我的opencv文件夹!至少现在我理解cmake语言,xD. (4认同)
  • 好的,所以cmake实际上正在使用FindOpenCV.cmake?现在它无法找到OpenCV库/标题? (3认同)
  • CMake实际上正在使用FindOpenCV.cmake.问题1解决了.您是否尝试使用命令行选项手动设置它,例如cmake -DOpenCV_DIR =/path/to/opencv?另一个选择是使用ccmake或cmake-gui设置它. (3认同)
  • 尝试定义CMAKE_PREFIX_PATH变量并将其设置为安装OpenCV的目录. (3认同)
  • 不,只是找不到OpenCV_DIR,即使我手动编写它,即使我在cmakelists中设置了一个变量. (2认同)
  • 我使用cmake GUI,我试图在图形界面中手动修改变量OpenCV_DIR,但是当我按下配置时,GUI说它无法找到.我会继续尝试,如果我找到解决方案,我会在这里移植它.谢谢. (2认同)
  • 问题是我的FindOpenCV.cmake没有安装.我必须在OpenCV文件夹上运行cmake,然后FindOpenCV.make以propper格式出现,最后cmake可以找到包,因为CMAKE_MODULE_PATH是正确的. (2认同)

les*_*usz 20

如果您使用的是Linux,则只需要使用opencv(包含OpenCVConfig.cmake文件)的路径填充OpenCV_DIR变量

export OpenCV_DIR=<path_of_opencv>
Run Code Online (Sandbox Code Playgroud)

  • 应该是导出OpenCV_DIR = <path_of_opencv/build> (7认同)
  • 在 Linux 上,不需要。只需安装 *libopencv-dev* 即可填补空白。 (2认同)

pen*_*ner 14

我有同样的问题.我通过在我的FindOpenCV.cmake文件中添加以下行来修复它.在其余代码之前将它放在顶部的任何位置.

set (OpenCV_DIR /home/cmake/opencv/compiled) #change the path to match your complied directory of opencv
Run Code Online (Sandbox Code Playgroud)

基本上你在告诉FindOpenCV.cmake在哪里找到opencv文件,假设其他编译可以找到FindOpenCV.cmake


小智 10

  1. apt-get install libopencv-dev
  2. 导出OpenCV_DIR =/usr/share/OpenCV
  3. cpp文件的标题应包含:#include #include"opencv2/highgui/highgui.hpp"

#include #include

不是原创的cv.h

  • 我这边只需要第一步:`apt-get install libopencv-dev` (2认同)

小智 10

find/-name"OpenCVConfig.cmake"

导出OpenCV_DIR =/path/found/above

  • 请提供一些解释 (2认同)

YuZ*_*YuZ 5

我遇到了同样的错误.在我的例子中,这个"OpenCVConfig.cmake"文件位于/ usr/local/share/OpenCV中.在CMakeLists.txt中添加该行

set(OpenCV_DIR /usr/local/share/OpenCV)

正如错误消息所示.