web-dev-qa-db-fra.com

Compilation des exemples d'opencv: commande cmake inconnue ocv_check_dependencies

J'essaie de construire les exemples OpenCV fournis avec le paquet source et j'obtiens ce qui suit:

CMake Error at CMakeLists.txt:10 (ocv_check_dependencies):
  Unknown CMake command "ocv_check_dependencies".

J'ai installé OpenCV en utilisant

cmake .
make
Sudo make install

et j'ai eu un extrait de tutoriel de travail (donc je suppose qu'il est correctement installé en tant que bibliothèque). Toutefois, la compilation des exemples ne fonctionne pas.

Je suppose que je dois en quelque sorte configurer CMake pour avoir «ocv_check_dependencies» - mais comment? Je suis perdu!

13
scravy

J? ai compris.

Pour construire les exemples, il faut changer la configuration par défaut de cmake en la fournissant via -D. Ce que j'ai fait de mal, c'est que j'ai essayé d'exécuter cmake à partir du répertoire samples.

La manière appropriée de construire les exemples est d'appeler cmake comme suit (depuis le répertoire racine de l'archive décompressée):

cmake -DBUILD_SAMPLES .

qui activera les échantillons. On peut utiliser make, make install que. Les échantillons peuvent être trouvés dans bin après la construction.

Voir aussi FAQ

15
scravy

En fait, pour OpenCV 2.4.4 beta, le fichier racine CMakeList.txt dit:

OCV_OPTION (BUILD_EXAMPLES "Construire tous les exemples"

-DBUILD_EXAMPLES=ON a bien fonctionné pour moi.

15
Zzirconium

Comment compiler le code exemple OpenCV?

# For OpenCV 3 
cd /path/to/opencv/samples/cpp/
#Compile
g++ -ggdb `pkg-config --cflags --libs opencv` facedetect.cpp -o facedetect
#run
./facedetect

Travaille pour moi.

googlé à partir de ce lien

3
Xin Wang

Raison

contexte du message d'erreur:

CMake Error at CMakeLists.txt:10 (ocv_check_dependencies):
  Unknown CMake command "ocv_check_dependencies".

Ce message d'erreur se produit car cmake ne trouve pas la définition de ocv_check_dependencies

C'est pourquoi la console a déclaré Commande CMake inconnue

Solution

Si cmake ne peut pas trouver où ocv_check_dependencies est défini

Tout comme @ Nick Hockings a déclaré:

ocv_check_dependencies est une macro définie dans Your/OpenCV/path/OpenCVModule.cmake

macro(ocv_check_dependencies)
  set(OCV_DEPENDENCIES_FOUND TRUE)
  foreach(d ${ARGN})
    if(d MATCHES "^opencv_[^ ]+$" AND NOT HAVE_${d})
      set(OCV_DEPENDENCIES_FOUND FALSE)
      break()
    endif()
  endforeach()
endmacro()

Le moyen le plus rapide est de copier cet extrait ci-dessus dans votre fichier CMakeList.txt juste au-dessus, où ocv_check_dependencies est

Par conséquent, cmake peut enfin comprendre ce que c'est

Cela devrait faire l'affaire, j'espère que personne d'autre ne se souciera de cette question à l'avenir

1
Wei Yuang Hsu

La macro 'ocv_check_dependencies' est définie dans: your_path_to/opencv/cmake/OpenCVModule.cmake

# ensures that all passed modules are available
# sets OCV_DEPENDENCIES_FOUND variable to TRUE/FALSE
macro(ocv_check_dependencies)
  set(OCV_DEPENDENCIES_FOUND TRUE)
  foreach(d ${ARGN})
    if(d MATCHES "^opencv_[^ ]+$" AND NOT HAVE_${d})
      set(OCV_DEPENDENCIES_FOUND FALSE)
      break()
    endif()
  endforeach()
endmacro()

Le fichier CMakeLists.txt de niveau supérieur contient les commandes "include" pour les fichiers opencv/cmake /. C’est pourquoi la macro est disponible lorsque vous compilez en appelant cmake à partir de la racine des sources opencv.

1
Nick Hockings

les instructions de construction de mydragonisland ont presque fonctionné pour moi; avec une réorganisation mineure et des accents:

g++ facedetect.cpp -o facedetect `pkg-config --libs opencv`
1
rasmusskov

Suivre les étapes fonctionne pour moi.

Exporter le chemin de la chaîne d’outils.

cd opencv-3.3.0/samples

cross_cmake && cross_make

cd opencv-3.3.0/samples/cpp /

0
Aspire

J'ai eu des erreurs similaires. Mon approche est la suivante: 1) cd xxx/samples 2) mkdir build 3) cd build 4) cmake .. 5) make Maintenant, cela fonctionne. Nous ne pouvions pas construire un projet individuel sous leurs fichiers source.

0
Roy