2016-06-19 6 views
0

Я пытаюсь построить проект с помощью arUco.Сбой проекта с ARUCO

Я использую openCV v.3.1, который, по-видимому, включает aruco. Тем не менее, я получаю ошибку:

opencv2/aruco/dictionary.hpp: No such file or directory 
    #include "opencv2/aruco/dictionary.hpp" 
             ^

Затем я скачал arUco, построил его, и пытался построить пример, описанный в нижней части http://www.uco.es/investiga/grupos/ava/node/26. Я получаю ошибку:

fatal error: aruco/aruco.h: No such file or directory 
    #include <aruco/aruco.h> 
          ^

CMakeLists.txt используется:

cmake_minimum_required(VERSION 2.8) 
project(aruco_testproject) 
SET(CMAKE_MODULE_PATH ${CMAKE_INSTALL_PREFIX}/lib/cmake/) 
MESSAGE(${CMAKE_MODULE_PATH}) 
find_package(aruco REQUIRED) 
add_executable(aruco_simple aruco_simple.cpp) 
target_link_libraries(aruco_simple ${aruco_LIBS}) 

Я скопировал Findaruco.cmake в/USR/местные/Библиотека/CMake/

Если кто-то мог помощь, это было бы фантастически. Я искал какое-то решение, и я чувствую себя действительно застрявшим. Большое спасибо!

+0

Вы вводите в заблуждение две отдельные библиотеки. OpenCV имеет собственную реализацию [aruco] (http://docs.opencv.org/3.1.0/d9/d6a/group__aruco.html), не имеет ничего общего с другим, с которым вы связались. Он содержится в отдельный модуль в 'opencv_contrib' (поэтому вам нужно явно создать его из источника). – Amro

ответ

0

Вам не хватает include_directories stanza. Также я думаю, что правильный суффикс имени переменной для библиотеки должен быть _LIBRARIES, а не _LIBS, но afaik, cmake не может обеспечить соблюдение какого-либо правила с мошенническими модулями cmake, поэтому лучше всего попробовать несколько общих суффиксов. Это одно из зверств.

cmake_minimum_required(VERSION 2.8) 
project(aruco_testproject) 
SET(CMAKE_MODULE_PATH ${CMAKE_INSTALL_PREFIX}/lib/cmake/) 
MESSAGE(${CMAKE_MODULE_PATH}) 
find_package(aruco REQUIRED) 
add_executable(aruco_simple aruco_simple.cpp) 
include_directories(${ARUCO_INCLUDE_DIR} ${ARUCO_INCLUDE_DIRS}) 
target_link_libraries(aruco_simple ${ARUCO_LIBRARY} ${ARUCO_LIBRARIES}) 

Для включения заголовка, #include <aruco/aruco.h> выглядит хорошо, но не#include "opencv2/aruco/xxx".