PCL找不到头文件

时间:2020-08-08 12:14:00

标签: ros point-cloud-library catkin

    /home/ubuntu/emvs_ws/src/rpg_emvs/mapper_emvs/src/realtime.cpp:25:62: fatal error: pcl/registration/impl/incremental_registration.hpp: No such file or directory
compilation terminated.
rpg_emvs/mapper_emvs/CMakeFiles/realtime_emvs.dir/build.make:62: recipe for target 'rpg_emvs/mapper_emvs/CMakeFiles/realtime_emvs.dir/src/realtime.cpp.o' failed
make[2]: *** [rpg_emvs/mapper_emvs/CMakeFiles/realtime_emvs.dir/src/realtime.cpp.o] Error 1

catkin_make之后出现此错误

这些是realtime.cpp中的包含

#include <pcl/registration/incremental_registration.h>
#include <pcl/registration/icp.h>

CMakeLists.txt文件

project(mapper_emvs)
cmake_minimum_required(VERSION 2.8.3)

find_package(catkin_simple REQUIRED)
catkin_simple(ALL_DEPS_REQUIRED)

set(CMAKE_BUILD_TYPE RelWithDebInfo) # Release, RelWithDebInfo
set(CMAKE_CXX_FLAGS "-O3 -fopenmp -std=c++11 ${CMAKE_CXX_FLAGS}")

## Generate dynamic reconfigure parameters in the 'cfg' folder
##generate_dynamic_reconfigure_options(
##  cfg/EMVSCfg.cfg
##)

set(HEADERS
  include/mapper_emvs/mapper_emvs.hpp
  include/mapper_emvs/data_loading.hpp
  include/mapper_emvs/depth_vector.hpp
  include/mapper_emvs/trajectory.hpp
  include/mapper_emvs/geometry_utils.hpp
  include/mapper_emvs/median_filtering.hpp
)

set(SOURCES
  src/mapper_emvs.cpp
  src/data_loading.cpp
  src/median_filtering.cpp
)

option(DEFINE_USE_INVERSE_DEPTH "Use linear spacing in inverse depth (if OFF, will use linear spacing in depth)" ON)
if(DEFINE_USE_INVERSE_DEPTH)
    add_definitions(-DUSE_INVERSE_DEPTH)
endif(DEFINE_USE_INVERSE_DEPTH)

cs_add_library(${PROJECT_NAME} ${SOURCES} ${HEADERS})

# Executables
################################################################################

cs_add_executable(run_emvs src/main.cpp)
target_link_libraries(run_emvs ${PROJECT_NAME})

cs_add_executable(realtime_emvs src/realtime.cpp)
add_dependencies(realtime_emvs ${PROJECT_NAME}_gencfg)
target_link_libraries(realtime_emvs ${PROJECT_NAME})

################################################################################
cs_install()
cs_export()

请注意,我没有进行Catkin_make而不是catkin构建,我不知道这是否有所不同。

要求我添加更多详细信息,所以请忽略此行:)

1 个答案:

答案 0 :(得分:0)

您需要按如下所示在CMakeLists.txt文件中添加PCL库:

    project(mapper_emvs)
    cmake_minimum_required(VERSION 2.8.3)

    find_package(catkin_simple REQUIRED)
    
    # Adding PCL lib
    find_package(PCL REQUIRED)
    # Setting include, lib directories and definitions 
    include_directories(${PCL_INCLUDE_DIRS})
    link_directories(${PCL_LIBRARY_DIRS} )
    add_definitions(${PCL_DEFINITIONS} )

    catkin_simple(ALL_DEPS_REQUIRED)

    set(CMAKE_BUILD_TYPE RelWithDebInfo) # Release, RelWithDebInfo
    set(CMAKE_CXX_FLAGS "-O3 -fopenmp -std=c++11 ${CMAKE_CXX_FLAGS}")
        
    ## Generate dynamic reconfigure parameters in the 'cfg' folder
    ##generate_dynamic_reconfigure_options(
    ##  cfg/EMVSCfg.cfg
    ##)

    set(HEADERS
        include/mapper_emvs/mapper_emvs.hpp
        include/mapper_emvs/data_loading.hpp
        include/mapper_emvs/depth_vector.hpp
        include/mapper_emvs/trajectory.hpp
        include/mapper_emvs/geometry_utils.hpp
        include/mapper_emvs/median_filtering.hpp
    )
        
    set(SOURCES
        src/mapper_emvs.cpp
        src/data_loading.cpp
        src/median_filtering.cpp
    )
        
    option(DEFINE_USE_INVERSE_DEPTH "Use linear spacing in inverse depth (if OFF, will use linear spacing in depth)" ON)
    if(DEFINE_USE_INVERSE_DEPTH)
        add_definitions(-DUSE_INVERSE_DEPTH)
    endif(DEFINE_USE_INVERSE_DEPTH)
        
    cs_add_library(${PROJECT_NAME} ${SOURCES} ${HEADERS})

    # Executables
    ################################################################################

    cs_add_executable(run_emvs src/main.cpp)
    target_link_libraries(run_emvs ${PROJECT_NAME} ${PCL_LIBRARIES})

    cs_add_executable(realtime_emvs src/realtime.cpp)
    add_dependencies(realtime_emvs ${PROJECT_NAME}_gencfg)
    target_link_libraries(realtime_emvs ${PROJECT_NAME} ${PCL_LIBRARIES})

    ################################################################################
    cs_install()
    cs_export()

注意:希望您已安装PCL lib。而且
我将${PCL_LIBRARIES}添加到了target_link_libraries中。我希望它能以这种方式工作,如果遇到一些错误,请尝试将${PCL_LIBRARIES}添加到cs_add_library($ {PROJECT_NAME} $ {SOURCES} $ {HEADERS} $ {PCL_LIBRARIES})中。应用这些更改后,如果出现错误,请告知我们。