Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
找不到模块FindOpenCV.cmake(配置过程中出错)_Opencv_Cmake - Fatal编程技术网

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

找不到模块FindOpenCV.cmake(配置过程中出错),opencv,cmake,Opencv,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 FindOp

我为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
事实上,我在VisualStudio中使用的路径有一个环境变量,没有任何问题。如果我不包括OpenCV,那么我可以毫无问题地进行配置和生成,但我需要解决这个问题。我不明白为什么cmake找不到OpenCV路径或者如何修复它

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


有人也有这个问题吗?

您看到的错误是CMake找不到FindOpenCV.CMake文件,因为CMake没有现成的文件。因此,您需要找到一个并将其放在cmake可以找到的位置:

你可以找到一份工作。如果你喜欢冒险,你也可以自己写

然后将其添加到项目中的某个位置,并调整CMAKE_模块_路径,以便CMAKE可以找到它

e、 如果你有

CMakeLists.txt
cmake-modules/FindOpenCV.cmake
那么你应该做一个测试

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

在执行查找包(OpenCV)之前,在您的CMakeLists.txt文件中,我遇到了完全相同的问题。我通过在我的
FindOpenCV.cmake
文件中添加以下行来修复它。将其放在代码其余部分之前顶部的任何位置

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

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

如果您在Linux上,您只需要用opencv的路径(包含OpenCVConfig.cmake文件)填充opencv_DIR变量

导出OpenCV\u目录=

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

之前:

集合(OpenCV_INCLUDE_DIRS“${OpenCV_INSTALL_PATH}/INCLUDE/OpenCV;${OpenCV_INSTALL_PATH}/INCLUDE”)

SET(OpenCV_LIB_DIR“${OpenCV_INSTALL_PATH}/lib64”)

之后:

集合(OpenCV\u INCLUDE\u DIRS)/usr/INCLUDE/OpenCV;/usr/INCLUDE/opencv2)


SET(OpenCV_LIB_DIR)/usr/lib64“

紧跟着@hugh pearse和@leszek hanusz的答案,稍加调整。我从Ubuntu12.10存储库(libopencv-)安装了opencv*,遇到了同样的问题。无法使用导出OpenCV\u DIR=/usr/share/OpenCV/解决此问题(因为我的OpenCVConfig.cmake在那里)。当我还更改了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\u link\u库(yourprojectname${OpenCV\u LIBS})

另一种可能性是指出可以在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\u STATIC
OpenCV\u CUDA
。在我的例子中,构建的库是不使用CUDA的静态库

  • apt获取安装libopencv dev
  • 导出OpenCV_DIR=/usr/share/OpenCV
  • cpp文件的标题应包含: #包括 #包括“opencv2/highgui/highgui.hpp”
  • #包括 #包括


    非原始cv.h

    如果您在windows上,您可以自己将opencv路径添加到opencv_DIR。 (OpenCV_DIR位于红色区域)

    路径类似于“D:/opencv244/build”

    您可以在路径下找到文件“OpenCVConfig.cmake”。

    find/-name“OpenCVConfig.cmake”


    导出OpenCV_DIR=/path/found/over

    我正在使用Windows并收到相同的错误消息。我发现另一个相关的问题。
    我在行尾的路径中定义了OpenCV_DIR。但是,当我在命令行中键入“path”时,我的OpenCV_DIR没有显示出来。我发现,因为Windows可能对路径的长度有限制,它将我的OpenCV\u目录剪切为我定义的内容的一部分。所以我删除了路径的其他部分,现在它可以工作了

    我也面临同样的错误。在我的例子中,这个“OpenCVConfig.cmake”文件位于/usr/local/share/OpenCV中。在CMakeLists.txt中添加行

    set(OpenCV\u DIR/usr/local/share/OpenCV)


    如错误消息所示。

    我也有同样的错误,我使用windows。我将“C:\opencv\build”(opencv文件夹)添加到控制面板的路径中。
    所以,没关系

    在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代码中构建项目时。当OpenCV安装在C驱动器中时,运行具有管理员权限的visual studio代码。

    谢谢,但我已经尝试了所有这些。我从有类似问题的人那里读到了论坛,他们建议设置路径。我下载了FindOpenCV,我用路径定义了变量,我将OpenCV文件夹移动到了不同的路径,我直接链接了opencvConfig.cmake,但错误总是一样的。cmake找不到我的opencv文件夹!至少现在我理解了cmake语言xD。那么cmake实际上使用的是FindOpenCV.cmake?现在查找OpenCV库/头有困难吗?不,就是找不到OpenCV_目录,即使我手动编写它,即使我在cmakelists.CMake中设置了一个变量。CMake实际上使用的是FindOpenCV.CMake。问题1解决了。您是否尝试过使用命令行选项(如cmake-DOpenCV_DIR=/path/to/opencv)手动设置它?另一个选项是使用ccmake或cmake-gui进行设置。尝试定义cmake_PREFIX_PATH变量并将其设置为安装OpenCV的目录。在windows上,请确保使用“/”而不是普通斜杠!设置OPENCV_DIR=C:/OPENCV/build/并不能解决我在Windows上遇到的问题,即使我有C:\OPENCV\build\OpenCVConfig.cmake…这对我很有用。不需要OpenCVConfig.cmake,只需将OpenCV_DIR设置为C:/OpenCVx.y.z/**Build**应该是export-OpenCV_DIR=On-Win
    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)