Impossible de trouver le module FindOpenCV.cmake (erreur dans le processus de configuration)

J’ai écrit un CMakeLists.txt pour un projet en C ++ , qui utilise des bibliothèques OpenCV . Lorsque j’essaie de créer le projet en utilisant cmake, j’obtiens le prochain problème de configuration:

 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 

Le fait est que j’ai une variable d’environnement pour le chemin que j’utilise dans Visual Studio sans aucun problème. Si je n’inclus pas OpenCV, alors je peux configurer et générer sans problème, mais je dois résoudre le problème. Je ne comprends pas pourquoi cmake ne peut pas trouver le chemin OpenCV ou comment le réparer.

J’ai aussi utilisé les recommandations mentionnées dans ce lien: FindOpenCV.cmake

Quelqu’un a-t-il ce problème aussi?

L’erreur que vous constatez est que CMake ne peut pas trouver un fichier FindOpenCV.cmake, car cmake n’en inclut aucun. Par conséquent, vous devez en trouver un et le placer là où cmake peut le trouver:

Vous pouvez trouver un bon départ ici . Si vous vous sentez aventureux, vous pouvez aussi écrire le vôtre.

Puis ajoutez-le quelque part dans votre projet et ajustez CMAKE_MODULE_PATH pour que cmake puisse le trouver.

par exemple, si vous avez

 CMakeLists.txt cmake-modules/FindOpenCV.cmake 

Ensuite, vous devriez faire un

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

Dans votre fichier CMakeLists.txt avant de faire un find_package (OpenCV)

Si vous êtes sous Linux, il vous suffit de remplir la variable OpenCV_DIR avec le chemin d’opencv (contenant le fichier OpenCVConfig.cmake)

 export OpenCV_DIR= 

J’ai eu exactement le même problème. Je l’ai corrigé en ajoutant la ligne suivante à mon fichier FindOpenCV.cmake . Placez-le n’importe où en haut avant le rest du code.

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

Fondamentalement, vous FindOpenCV.cmake à FindOpenCV.cmake où trouver les fichiers OpenCV en supposant que l’autre compilation peut trouver le FindOpenCV.cmake

trouver / nom-Open “OpenCVConfig.cmake”

exporter OpenCV_DIR = / path / found / above

  1. apt-get install libopencv-dev
  2. export OpenCV_DIR = / usr / share / OpenCV
  3. l’en-tête du fichier cpp doit contenir: #include #include “opencv2 / highgui / highgui.hpp”

#include #include

cv.h pas original

J’ai fait face à la même erreur. Dans mon cas, ce fichier “OpenCVConfig.cmake” se trouve dans / usr / local / share / OpenCV. Dans CMakeLists.txt ajoutez la ligne

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

comme suggéré par le message d’erreur.

Si vous êtes sur Windows, vous pouvez append vous-même le chemin d’access à OpenCV_DIR. (OpenCV_DIR est dans la région rouge)

le chemin est comme “D: / opencv244 / build”.

Vous pouvez trouver le fichier “OpenCVConfig.cmake” sous le chemin.

Sur ma machine Fedora, quand j’ai tapé “make”, j’ai eu une erreur en disant qu’il ne pouvait pas trouver “cv.h”. J’ai corrigé cela en modifiant mon fichier “OpenCVConfig.cmake”.

Avant:

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

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

Après:

SET (OpenCV_INCLUDE_DIRS “/ usr / include / opencv; / usr / include / opencv2”)

SET (OpenCV_LIB_DIR “/ usr / lib64”)

Une autre possibilité consiste à indiquer où vous pouvez trouver OpenCV_DIR dans le fichier CMakeLists.txt. Par exemple, les scripts cmake suivants fonctionnent pour moi:

 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 que vous devez également définir OpenCV_STATIC et OpenCV_CUDA avant d’invoquer OpenCVConfig.cmake . Dans mon cas, la bibliothèque construite est une bibliothèque statique qui n’utilise pas CUDA.

J’utilise Windows et j’obtiens le même message d’erreur. Je trouve un autre problème qui est pertinent. J’ai défini OpenCV_DIR sur mon chemin à la fin de la ligne. Cependant, lorsque je tapais “path” dans la ligne de commande, mon OpenCV_DIR n’était pas affiché. J’ai trouvé que Windows a probablement une limite sur la longueur du chemin, il a coupé mon OpenCV_DIR pour qu’il ne soit qu’une partie de ce que j’ai défini. J’ai donc enlevé une autre partie du chemin, maintenant ça marche.

J’ai eu la même erreur, j’utilise windows. J’ajoute “C: \ opencv \ build” (dossier opencv) au chemin au panneau de contrôle. Donc, ça va !!

A suivi les réponses de @ hugh-pearse et @ leszek-hanusz, avec un petit tweak. J’avais installé opencv depuis le repository Ubuntu 12.10 (libopencv- ) * et j’ai eu le même problème. Impossible de le résoudre avec l’ export OpenCV_DIR=/usr/share/OpenCV/ (puisque mon OpenCVConfig.cmake est là). Il a été résolu lorsque j’ai également modifié certaines lignes du fichier 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}) 

Et cela a fonctionné sur mon Ubuntu 12.10. N’oubliez pas d’append les target_link_libraries(yourprojectname ${OpenCV_LIBS}) dans votre fichier CMakeLists.txt.