代码之家  ›  专栏  ›  技术社区  ›  kungphil

致命错误:当我确定已正确设置find_包时,没有这样的文件或目录

  •  0
  • kungphil  · 技术社区  · 6 年前

    我正在尝试编译我自己的脚本,在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上编译得很好。


    我现在已经安装了阿鲁科!一位同事指出,由于我正在本地安装(例如 make install ) 阿鲁科 不在目录中 /usr/local/include/aruco 所以include语句现在是 #include <aruco.h> . 我还得编辑 aruco.pc arucoConfig.cmake 指向的文件 /主页/ucfaptv/opt/aruco-3.0.7/src 目录,而不是 /usr/local/include

    1 回复  |  直到 6 年前
        1
  •  0
  •   Matthieu Brucher    6 年前

    拥有包后,仍需要添加include路径以将其添加到编译命令中:

    include_directories(${aruco_DIR})
    

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

    opencv也是。