Я пытаюсь скомпилировать свои собственные скрипты, которые используют aruco (v 3.0.7) в Linux.Я использую make-файл, но при компиляции я получаю эту ошибку.
[ 33%] Building CXX object CMakeFiles/aruco_simple.dir/aruco_simple.cpp.o
/home/ucfaptv/opt/aruco-3.0.7/mine/aruco_simple.cpp:2:25: fatal error: aruco/aruco.h: No such file or directory
#include <aruco/aruco.h>
^
compilation terminated.
make[2]: *** [CMakeFiles/aruco_simple.dir/aruco_simple.cpp.o] Error 1
make[1]: *** [CMakeFiles/aruco_simple.dir/all] Error 2
make: *** [all] Error 2
Мой CMakeLists.txt выглядит так
cmake_minimum_required(VERSION 2.8)
SET(CMAKE_CXX_FLAGS "-std=c++11")
find_package(OpenCV REQUIRED PATHS "/home/ucfaptv/opt/opencv-3.4.4/build")
find_package(aruco REQUIRED PATH "/home/ucfaptv/opt/aruco-3.0.7/src")
add_library(aruco_simple SHARED aruco_simple.cpp)
target_link_libraries(aruco_simple aruco ${OpenCV_LIBS})
add_executable(run run.cpp)
target_link_libraries(run aruco_simple aruco ${OpenCV_LIBS})
add_executable(view view.cpp)
target_link_libraries(view aruco_simple aruco ${OpenCV_LIBS})
Я думал, find_package
должно указывать на aruco.h
находится в /home/ucfaptv/opt/aruco-3.0.7/src
Используя тот же make-файл (пути отредактированы), я могу прекрасно скомпилировать на своем Mac.
У меня сейчас установлена aruco!Коллега указал, что, поскольку я устанавливаю локально (например, не make install
) aruco.h
, а не в каталоге /usr/local/include/aruco
, поэтому оператор include теперь #include <aruco.h>
.Мне также пришлось отредактировать файлы aruco.pc
и arucoConfig.cmake
, чтобы они указывали на каталог /home/ucfaptv/opt/aruco-3.0.7/src
, а не на /usr/local/include