Не удалось найти модуль 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
У кого-то тоже была эта проблема?
Ответы
Ответ 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
.
Я менял переменные среды, поэтому ничего не происходило, так как программы не перезагружают переменные среды при их изменении.