在cmakelists文件中find_package中直接添加pcl不可行,报错无法找到pcl相关的头文件
find_package(catkin REQUIRED COMPONENTS
geometry_msgs
rospy
sensor_msgs
roscpp
pcl_ros
pcl_conversions
)
解决方法,参看谷歌找到的答案Basic CMakeLists for PCL
上面那个find_package不变,在后面输入下面的代码就可以catkin_make成功了
或者pcl_ros 和 pcl_conversions这两个包可不可以不要了?只要找到下面这个pcl的包就可以了?我还没试过,应该可以吧
find_package(PCL 1.10 REQUIRED)
if( PCL_FOUND )
# [C/C++]>[General]>[Additional Include Directories]
include_directories( ${PCL_INCLUDE_DIRS} )
# [C/C++]>[Preprocessor]>[Preprocessor Definitions]
add_definitions( ${PCL_DEFINITIONS} )
# For Use Not PreCompiled Features
#add_definitions( -DPCL_NO_PRECOMPILE )
# [Linker]>[General]>[Additional Library Directories]
link_directories( ${PCL_LIBRARY_DIRS} )
# [Linker]>[Input]>[Additional Dependencies]
#target_link_libraries( project ${PCL_LIBRARIES} ) //这一句原回答中需要,但是我加了以后出错,所以注释掉了
endif()
···
注:我用的pcl版本是pcl-1.10,pcl文件夹在pcl-1.10这个文件夹中,即pcl-1.10/pcl,所以导致我写的C++文件或头文件始终无法找到point_cloud.h等的头文件。这和使用opencv4/opencv出错的原因可能一样,需要帮助cmakelists文件找到这些文件夹的位置。