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

Компиляция образцов opencv: неизвестная команда cmake ocv_check_dependencies

Я пытаюсь создать образцы OpenCV, которые поставляются с исходным пакетом, и я получаю следующее:

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

Я установил OpenCV, используя

cmake .
make
sudo make install

и я получил учебный фрагмент работы (таким образом, я полагаю, что он правильно установлен как библиотека). Однако компиляция образцов не работает.

Думаю, мне нужно каким-то образом настроить CMake на "ocv_check_dependencies", но как? Я потерян!

4b9b3361

Ответ 1

Я понял.

Чтобы создать образцы, нужно изменить конфигурацию по умолчанию для cmake, предоставив ее с помощью -D. Что я сделал неправильно, так это то, что я попытался выполнить cmake из каталога samples.

Правильный способ создания образцов вызывает cmake так (из корневого каталога распакованного архива):

cmake -DBUILD_SAMPLES .

который включит образцы. Можно продолжать использовать make, make install, чем. Образцы можно найти в bin после сборки.

См. также FAQ

Ответ 2

Фактически для OpenCV 2.4.4 beta корневой файл CMakeList.txt говорит:

OCV_OPTION (BUILD_EXAMPLES "Построить все примеры"

-DBUILD_EXAMPLES=ON работал отлично для меня.

Ответ 3

Как скомпилировать код образца OpenCV?

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

Работает для меня.

googled из этой ссылки

Ответ 4

Инструкции по сборке mydragonisland почти сработали для меня; с незначительным переупорядочением и включая акценты:

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

Ответ 5

Макрос "ocv_check_dependencies" определяется в: 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()

Верхний уровень CMakeLists.txt содержит команды "include" для файлов из opencv/cmake/. Вот почему макрос доступен при компиляции, вызывая cmake из корня источников opencv.

Ответ 6

Причина

контекст сообщения об ошибке:

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

Это сообщение об ошибке происходит, потому что cmake не может найти определение ocv_check_dependencies

Вот почему консоль сказала Неизвестная команда CMake

Решение

Если cmake не может найти, где ocv_check_dependencies определено

Так же, как @Nick Hockings Said:

ocv_check_dependencies - это макрос, определенный в 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()

Самый быстрый способ - скопировать этот фрагмент выше в ваш CMakeList.txt файл прямо там, где ocv_check_dependencies есть

Следовательно, cmake может наконец понять, что это такое

Это должно сделать трюк, я надеюсь, что никто больше не будет беспокоиться об этом вопросе в будущем

Ответ 7

У меня были подобные ошибки. Мой подход следующий: 1) cd xxx/samples 2) mkdir build 3) cd build 4) cmake.. 5) make Теперь это работает. Мы не могли создать отдельный проект под исходными файлами.

Ответ 8

Следующие шаги работают для меня.

Экспортировать путь привязки.

cd opencv-3.3.0/samples

cross_cmake && & cross_make

cd opencv-3.3.0/samples/cpp/