Не удалось найти модуль FindOpenCV.cmake (ошибка в процессе настройки) - PullRequest
49 голосов
/ 03 января 2012

Я написал CMakeLists.txt для проекта в C ++ , в котором используются библиотеки 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

У кого-нибудь тоже была эта проблема?

Ответы [ 12 ]

31 голосов
/ 03 января 2012

Ошибка, которую вы видите, состоит в том, что 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)

20 голосов
/ 06 июня 2013

Если вы работаете в Linux, вам просто нужно заполнить переменную OpenCV_DIR путем к opencv (содержащему файл OpenCVConfig.cmake)

export OpenCV_DIR=<path_of_opencv>
12 голосов
/ 23 марта 2012

У меня была точно такая же проблема.Я исправил это, добавив следующую строку в мой FindOpenCV.cmake файл.Поместите его где-нибудь вверху, перед остальным кодом.

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

По сути, вы говорите FindOpenCV.cmake, где найти файлы opencv, если другая компиляция найдет FindOpenCV.cmake

10 голосов
/ 24 июля 2016

find / -name "OpenCVConfig.cmake"

экспорт OpenCV_DIR = / путь / найдено / выше

8 голосов
/ 04 октября 2014
  1. apt-get install libopencv-dev
  2. export OpenCV_DIR = / usr / share / OpenCV
  3. заголовок файла cpp должен содержать: #include #include "opencv2 / highgui/highgui.hpp"

# include #include

не оригинальное cv.h

5 голосов
/ 19 мая 2017

Я столкнулся с той же ошибкой.В моем случае этот файл "OpenCVConfig.cmake" находится в / usr / local / share / OpenCV.В CMakeLists.txt добавьте строку

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

, как указано в сообщении об ошибке.

3 голосов
/ 14 июля 2015

Если вы находитесь в Windows, вы можете добавить opencv путь к OpenCV_DIR самостоятельно. (OpenCV_DIR находится в красной области)

путь похож на "D: / opencv244 / build".

Вы можете найти файл "OpenCVConfig.cmake" по пути.

1 голос
/ 30 мая 2017

У меня была такая же ошибка, я использую windows. Я добавляю «C: \ opencv \ build» (папка opencv) к пути на панели управления. Итак, все в порядке !!

1 голос
/ 16 декабря 2016

Я использую Windows и получаю то же сообщение об ошибке.Я нахожу другую проблему, которая имеет отношение к делу.Я определил OpenCV_DIR в моем пути в конце строки.Однако, когда я набрал «путь» в командной строке, мой OpenCV_DIR не был показан.Я обнаружил, потому что у Windows, вероятно, есть ограничение на длину пути, он сократил мой OpenCV_DIR, чтобы быть только частью того, что я определил. Поэтому я удалил некоторую другую часть пути, теперь он работает.

1 голос
/ 29 июля 2014

Другая возможность - указать, где вы можете найти OpenCV_DIR в файле CMakeLists.txt. Например, у меня работают следующие скрипты 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})

Просто чтобы напомнить, что вы должны установить OpenCV_STATIC и OpenCV_CUDA, прежде чем вызывать OpenCVConfig.cmake. В моем случае встроенная библиотека - это статическая библиотека, которая не использует CUDA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...