Подтвердить что ты не робот

Не удалось найти модуль FindOpenCV.cmake(ошибка в процессе настройки)

Я написал 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

У кого-то тоже была эта проблема?

4b9b3361

Ответ 1

Ошибка, которую вы видите, заключается в том, что CMake не может найти файл FindOpenCV.cmake, потому что cmake не включает один из них. Поэтому вам нужно найти его и поместить туда, где smake может найти его:

Вы можете найти хороший старт на веб-сайте OpenCV. Если вы чувствуете себя авантюристом, вы также можете написать свой собственный.

Затем добавьте его где-нибудь в свой проект и настройте CMAKE_MODULE_PATH, чтобы smake мог его найти.

например, если у вас есть

CMakeLists.txt
cmake-modules/FindOpenCV.cmake

Затем вы должны сделать

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

В вашем файле CMakeLists.txt перед тем, как вы выполните find_package (OpenCV)

Edit:

Ссылка выше, кажется, мертва, но файл можно найти здесь

Ответ 2

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

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

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

Ответ 3

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

export OpenCV_DIR=<path_of_opencv>

Ответ 4

find/-name "OpenCVConfig.cmake"

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

Ответ 5

  • apt-get install libopencv-dev
  • экспорт OpenCV_DIR =/usr/share/OpenCV
  • заголовок файла cpp должен содержать: #включают #include "opencv2/highgui/highgui.hpp"

#include #include

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

Ответ 6

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

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

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

Ответ 7

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

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

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

Ответ 8

На моей машине Fedora, когда я набрал "make", я получил сообщение об ошибке "cv.h". Я исправил это, изменив файл "OpenCVConfig.cmake".

До:

SET (OpenCV_INCLUDE_DIRS "$ {OpenCV_INSTALL_PATH}/include/opencv; ${OpenCV_INSTALL_PATH}/include" )

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

После:

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

SET (OpenCV_LIB_DIR "/usr/lib64" )

Ответ 9

Другая возможность - обозначить, где вы можете найти 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.

Ответ 10

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

Ответ 11

Последующие @hugh-pearse и @leszek-hanusz ответы, с небольшой настройкой. Я установил opencv из репозитория ubuntu 12.10 (libopencv -) * и имел ту же проблему. Не удалось решить это с помощью export OpenCV_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. Не забудьте добавить target_link_libraries(yourprojectname ${OpenCV_LIBS}) в ваш CMakeLists.txt.

Ответ 12

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

Ответ 13

Для тех, кто все еще борется с проблемой. Просто перезапустите программу компилятора (visual studio/cmake/clion или любой другой), чтобы он мог обновлять переменную пути и среды в окнах.

Добавьте переменную OpenCV_DIR в каталог opencv build, где находятся OpenCVConfig.cmake.

Я менял переменные среды, поэтому ничего не происходило, так как программы не перезагружают переменные среды при их изменении.