我试图编译自己的在Linux上使用aruco(v 3.0.7)的脚本。我正在使用一个makefile,但是在编译时会出现此错误。
[ 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
使用相同的makefile(已编辑路径),我可以在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
答案 0 :(得分:0)
拥有软件包后,您仍然需要添加包含路径以将其添加到编译命令中:
include_directories(${aruco_DIR})
(根据https://github.com/elliotwoods/ArUco-MarkerMapper/blob/master/CMakeLists.txt设置的变量)
与OpenCV相同。