致命错误:确定可以正确设置find_package时,没有此类文件或目录

时间:2018-11-28 21:09:24

标签: c++ cmake aruco

我试图编译自己的在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 installaruco.h不在目录/usr/local/include/aruco中,因此include语句现在为#include <aruco.h>。我还必须编辑aruco.pcarucoConfig.cmake文件以指向/home/ucfaptv/opt/aruco-3.0.7/src目录而不是/usr/local/include

1 个答案:

答案 0 :(得分:0)

拥有软件包后,您仍然需要添加包含路径以将其添加到编译命令中:

include_directories(${aruco_DIR})

(根据https://github.com/elliotwoods/ArUco-MarkerMapper/blob/master/CMakeLists.txt设置的变量)

与OpenCV相同。