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



我用 c++ 为一个项目写了一个CMakeLists.txt,它使用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

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

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

有人遇到过这个问题吗?

您看到的错误是CMake无法找到FindOpenCV。Cmake文件,因为Cmake不包含一个现成的。因此,您需要找到一个并将其放在cmake可以找到的地方:

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

然后将它添加到项目的某个地方并调整CMAKE_MODULE_PATH以便cmake可以找到它。

。,如果你有

CMakeLists.txt
cmake-modules/FindOpenCV.cmake

那么你应该做一个

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules)

在你的CMakeLists.txt文件之前,你做一个find_package(OpenCV)

如果您在Linux上,您只需要将OpenCV_DIR变量填入opencv的路径(包含OpenCVConfig. conf文件)。cmake文件)

export OpenCV_DIR=<path_of_opencv>
    apt-get install libopencv-dev
  1. 出口OpenCV_DIR =/usr/share/OpenCV
  2. cpp文件的头文件应该包含:# include# include"opencv2/highgui/highgui.hpp"

# include# include

find/-name "OpenCVConfig.cmake"

export OpenCV_DIR =/道路/发现/上方

我也遇到过同样的问题。我通过将以下行添加到我的FindOpenCV.cmake文件来修复它。把它放在其他代码之前的顶部的任何地方。

set (OpenCV_DIR /home/cmake/opencv/compiled) #change the path to match your complied directory of opencv

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

我遇到了同样的错误。在我的情况下,这个"OpenCVConfig。"cmake"文件位于/usr/local/share/opencv在CMakeLists.txt中添加

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

另一种可能性是指出在CMakeLists.txt文件中可以找到OpenCV_DIR的位置。例如,下面的cmake脚本为我工作:

cmake_minimum_required(VERSION 2.8)
project(performance_test)
set(OpenCV_STATIC ON)
set(OpenCV_CUDA OFF)
set(OpenCV_DIR "${CMAKE_SOURCE_DIR}/../install")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIB_DIR})
file(GLOB my_source_files ./src/*)
add_executable( performance_test ${my_source_files})
target_link_libraries(performance_test ${OpenCV_LIBS})

提醒一下,在调用OpenCVConfig.cmake之前,应该设置OpenCV_STATICOpenCV_CUDA。在我的情况下,构建的库是不使用CUDA的静态库。

如果你在windows上,你可以自己添加opencv path到OpenCV_DIR。(OpenCV_DIR在红色区域)

路径是"D:/opencv244/build"

你可以找到文件"OpenCVConfig. conf"。

对于我(在Ubuntu上),我只运行:

sudo apt-get install libopencv-dev

在我的Fedora机器上,当我输入"make"时,得到一个错误,说它找不到"cv.h"。我通过修改我的"OpenCVConfig"修复了这个问题。cmake"文件。

:

集(OpenCV_INCLUDE_DIRS " $ {OpenCV_INSTALL_PATH}/include/opencv; $ {OpenCV_INSTALL_PATH}/包括")

集(OpenCV_LIB_DIR " $ {OpenCV_INSTALL_PATH}/lib64")

:后

集(OpenCV_INCLUDE_DIRS"/usr/include/opencv;/usr/include/opencv2")

集(OpenCV_LIB_DIR"/usr/lib64")

我正在使用Windows并得到相同的错误信息。我发现了另一个相关的问题。我在行尾的路径中定义了OpenCV_DIR。然而,当我在命令行中输入"path"时,没有显示我的OpenCV_DIR。我发现,因为Windows可能对路径的长度有限制,它将我的OpenCV_DIR剪切为我定义的一部分。所以我删除了路径的其他部分,现在它工作了。

我有同样的错误,我使用windows。我添加"C:opencvbuild"(opencv文件夹)到控制面板的路径。所以,没关系!!

跟随@hugh-pearse和@leszek-hanusz的回答,做了一点调整。我已经从ubuntu 12.10存储库(libopencv-)*安装了opencv,并且有同样的问题。无法解决它与export OpenCV_DIR=/usr/share/OpenCV/(因为我的OpenCVConfig。(他在那里)。当我还更改了OpenCVConfig上的一些行时,它得到了解决。cmake文件:

# ======================================================
# Include directories to add to the user project:
# ======================================================
# Provide the include directories to the caller
#SET(OpenCV_INCLUDE_DIRS "${OpenCV_INSTALL_PATH}/include/opencv;${OpenCV_INSTALL_PATH}/include")
SET(OpenCV_INCLUDE_DIRS "/usr/include/opencv;/usr/include/opencv2")
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
# ======================================================
# Link directories to add to the user project:
# ======================================================
# Provide the libs directory anyway, it may be needed in some cases.
#SET(OpenCV_LIB_DIR "${OpenCV_INSTALL_PATH}/lib")
SET(OpenCV_LIB_DIR "/usr/lib")
LINK_DIRECTORIES(${OpenCV_LIB_DIR})

这在我的Ubuntu 12.10上有效。记得在CMakeLists.txt中添加target_link_libraries(yourprojectname ${OpenCV_LIBS})

当您在c驱动器(windows)安装库时。CMakeLists.txt应该如下所示:

cmake_minimum_required(VERSION 3.0.0)
project(test_opencv VERSION 0.1.0)
include(CTest)
enable_testing()
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(test_opencv main.cpp)
target_link_libraries(test_opencv ${OPENCV_LIBS})
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)

查找包和包含目录

在VS code中构建项目时。当OpenCV安装在C盘内时,使用admin权限运行visual studio代码

最新更新