点云库PCL在Qt下编译

本文介绍了如何在Qt 1.8.1下编译点云库PCL 1.8.1。首先提供了Qt和PCL的下载源,然后详细阐述了安装步骤,包括环境变量配置,特别是将pdb文件复制到bin目录。最后提到在Qt项目中配置pro文件,并提及可能需要的额外库文件。

点云库PCL在Qt下编译

本文详细的描述了搭载pcl点云库到Qt的过程,初学者完全可以照搬,大神请绕行,不喜勿喷

首先提供Qt1.8.1的下载地址:http://download.qt.io/archive/qt/5.12/5.12.1/
PCL1.8.1下载地址:链接:https://pan.baidu.com/s/1VP8E8LPh2gz7xP3C9akyFQ
提取码:0siy
安装PCL1…8.1详见:https://blog.csdn.net/qq_21815981/article/details/79841683
安装完PCL就行,不用看后面的配置VS。
msvc使用VS2017。下载安装详见:https://blog.csdn.net/zyhse/article/details/105362609

安装好Qt,VS,PCL后,下面进行配置环境:
1.环境变量配置:右击《我的电脑》点击属性,然后找到《高级系统设置》,然后在高级系统设置里面找到《高级》《环境变量》《系统变量》的path新建如下变量:此处添加的路径为PCL1.8.1安装位置的路径,请根据自己的安装位置进行更改
安装PCL1.8.1时记得把安装包的pcl-1.8.1rc2-pdb-msvc2017-win64文件夹里面的所有pdb文件复制到PCL1.8.1安装路径的bin文件夹下面。
以上基本工作就做完了:新建Qt程序,在pro文件下添加

INCLUDEPATH += H:/PCL1.8.1/include/pcl-1.8\

INCLUDEPATH += H:/PCL1.8.1/include/pcl-1.8/pcl\

INCLUDEPATH += H:/PCL1.8.1/3rdParty/Boost/include/boost-1_64\

INCLUDEPATH += H:/PCL1.8.1/3rdParty/Boost/include/boost-1_64/boost\

INCLUDEPATH += H:/PCL1.8.1/3rdParty/Eigen/eigen3\

INCLUDEPATH += H:/PCL1.8.1/3rdParty/FLANN/include\

INCLUDEPATH += H:/PCL1.8.1/3rdParty/FLANN/include/flann\

INCLUDEPATH += H:/PCL1.8.1/3rdParty/OpenNI2/Include\

INCLUDEPATH += H:/PCL1.8.1/3rdParty/Qhull/include\

INCLUDEPATH += H:/PCL1.8.1/3rdParty/VTK/include/vtk-8.0\

INCLUDEPATH += H:/PCL1.8.1/3rdParty/libLAS/include\

INCLUDEPATH += H:/PCL1.8.1/3rdParty/libLAS/include/liblas\

CONFIG(debug,debug|release){
LIBS += -LH:/PCL1.8.1/lib\
        -lpcl_common_debug\
        -lpcl_features_debug\
        -lpcl_filters_debug\
        -lpcl_io_debug\
        -lpcl_io_ply_debug\
        -lpcl_kdtree_debug\
        -lpcl_keypoints_debug\
        -lpcl_ml_debug\
        -lpcl_octree_debug\
        -lpcl_outofcore_debug\
        -lpcl_people_debug\
        -lpcl_recognition_debug\
        -lpcl_registration_debug\
        -lpcl_sample_consensus_debug\
        -lpcl_search_debug\
        -lpcl_segmentation_debug\
        -lpcl_stereo_debug\
        -lpcl_surface_debug\
        -lpcl_tracking_debug\
        -lpcl_visualization_debug\

LIBS += -LH:/PCL1.8.1/3rdParty/Boost/lib\
        -llibboost_atomic-vc141-mt-gd-1_64\
        -llibboost_bzip2-vc141-mt-gd-1_64\
        -llibboost_chrono-vc141-mt-gd-1_64\
        -llibboost_container-vc141-mt-gd-1_64\
        -llibboost_context-vc141-mt-gd-1_64\
        -llibboost_coroutine-vc141-mt-gd-1_64\
        -llibboost_date_time-vc141-mt-gd-1_64\
        -llibboost_exception-vc141-mt-gd-1_64\
        -llibboost_fiber-vc141-mt-gd-1_64\
        -llibboost_filesystem-vc141-mt-gd-1_64\
        -llibboost_graph-vc141-mt-gd-1_64\
        -llibboost_graph_parallel-vc141-mt-gd-1_64\
        -llibboost_iostreams-vc141-mt-gd-1_64\
        -llibboost_locale-vc141-mt-gd-1_64\
        -llibboost_log-vc141-mt-gd-1_64\
        -llibboost_log_setup-vc141-mt-gd-1_64\
        -llibboost_math_c99-vc141-mt-gd-1_64\
        -llibboost_math_c99f-vc141-mt-gd-1_64\
        -llibboost_math_c99l-vc141-mt-gd-1_64\
        -llibboost_math_tr1-vc141-mt-gd-1_64\
        -llibboost_math_tr1f-vc141-mt-gd-1_64\
        -llibboost_math_tr1l-vc141-mt-gd-1_64\
        -llibboost_mpi-vc141-mt-gd-1_64\
        -llibboost_numpy-vc141-mt-gd-1_64\
        -llibboost_numpy3-vc141-mt-gd-1_64\
        -llibboost_prg_exec_monitor-vc141-mt-gd-1_64\
        -llibboost_program_options-vc141-mt-gd-1_64\
        -llibboost_python-vc141-mt-gd-1_64\
        -llibboost_python3-vc141-mt-gd-1_64\
        -llibboost_random-vc141-mt-gd-1_64\
        -llibboost_regex-vc141-mt-gd-1_64\
        -llibboost_serialization-vc141-mt-gd-1_64\
        -llibboost_signals-vc141-mt-gd-1_64\
        -llibboost_system-vc141-mt-gd-1_64\
        -llibboost_test_exec_monitor-vc141-mt-gd-1_64\
        -llibboost_thread-vc141-mt-gd-1_64\
        -llibboost_timer-vc141-mt-gd-1_64\
        -llibboost_type_erasure-vc141-mt-gd-1_64\
        -llibboost_unit_test_framework-vc141-mt-gd-1_64\
        -llibboost_wave-vc141-mt-gd-1_64\
        -llibboost_wserialization-vc141-mt-gd-1_64\
        -llibboost_zlib-vc141-mt-gd-1_64\

LIBS += -LH:/PCL1.8.1/3rdParty/FLANN/lib\
        -lflann-gd\
        -lflann_cpp-gd\
        -lflann_cpp_s-gd\
        -lflann_s-gd

LIBS += -LH:/PCL1.8.1/3rdParty/OpenNI2/Lib\
        -lOpenNI2

LIBS += -LH:/PCL1.8.1/3rdParty/Qhull/lib\
        -lqhull_d\
        -lqhullcpp_d\
        -lqhullstatic_d\
        -lqhullstatic_r_d\
        -lqhull_p_d\
        -lqhull_r_d

LIBS += -LH:/Qt/Qt5.11.2/5.11.2/msvc2017_64/lib\
        -lQt5OpenGL

LIBS += -LH:/PCL1.8.1/3rdParty/VTK/lib\
        -lvtkalglib-8.0-gd\
        -lvtkChartsCore-8.0-gd\
        -lvtkCommonColor-8.0-gd\
        -lvtkCommonComputationalGeometry-8.0-gd\
        -lvtkCommonCore-8.0-gd\
        -lvtkCommonDataModel-8.0-gd\
        -lvtkCommonExecutionModel-8.0-gd\
        -lvtkCommonMath-8.0-gd\
        -lvtkCommonMisc-8.0-gd\
        -lvtkCommonSystem-8.0-gd\
        -lvtkCommonTransforms-8.0-gd\
        -lvtkDICOMParser-8.0-gd\
        -lvtkDomainsChemistry-8.0-gd\
        -lvtkexoIIc-8.0-gd\
        -lvtkexpat-8.0-gd\
        -lvtkFiltersAMR-8.0-gd\
        -lvtkFiltersCore-8.0-gd\
        -lvtkFiltersExtraction-8.0-gd\
        -lvtkFiltersFlowPaths-8.0-gd\
        -lvtkFiltersGeneral-8.0-gd\
        -lvtkFiltersGeneric-8.0-gd\
        -lvtkFiltersGeometry-8.0-gd\
        -lvtkFiltersHybrid-8.0-gd\
        -lvtkFiltersHyperTree-8.0-gd\
        -lvtkFiltersImaging-8.0-gd\
        -lvtkFiltersModeling-8.0-gd\
        -lvtkFiltersParallel-8.0-gd\
        -lvtkFiltersParallelImaging-8.0-gd\
        -lvtkFiltersPoints-8.0-gd\
        -lvtkFiltersProgrammable-8.0-gd\
        -lvtkFiltersSelection-8.0-gd\
        -lvtkFiltersSMP-8.0-gd\
        -lvtkFiltersSources-8.0-gd\
        -lvtkFiltersStatistics-8.0-gd\
        -lvtkFiltersTexture-8.0-gd\
        -lvtkFiltersTopology-8.0-gd\
        -lvtkFiltersVerdict-8.0-gd\
        -lvtkfreetype-8.0-gd\
        -lvtkGeovisCore-8.0-gd\
        -lvtkgl2ps-8.0-gd\
        -lvtkGUISupportQt-8.0-gd\
        -lvtkGUISupportQtOpenGL-8.0-gd\
        -lvtkGUISupportQtSQL-8.0-gd\
        -lvtkhdf5-8.0-gd\
        -lvtkhdf5_hl-8.0-gd\
        -lvtkImagingColor-8.0-gd\
        -lvtkImagingCore-8.0-gd\
        -lvtkImagingFourier-8.0-gd\
        -lvtkImagingGeneral-8.0-gd\
        -lvtkImagingHybrid-8.0-gd\
        -lvtkImagingMath-8.0-gd\
        -lvtkImagingMorphological-8.0-gd\
        -lvtkImagingSources-8.0-gd\
        -lvtkImagingStatistics-8.0-gd\
        -lvtkImagingStencil-8.0-gd\
        -lvtkInfovisCore-8.0-gd\
        -lvtkInfovisLayout-8.0-gd\
        -lvtkInteractionImage-8.0-gd\
        -lvtkInteractionStyle-8.0-gd\
        -lvtkInteractionWidgets-8.0-gd\
        -lvtkIOAMR-8.0-gd\
        -lvtkIOCore-8.0-gd\
        -lvtkIOEnSight-8.0-gd\
        -lvtkIOExodus-8.0-gd\
        -lvtkIOExport-8.0-gd\
        -lvtkIOExportOpenGL-8.0-gd\
        -lvtkIOGeometry-8.0-gd\
        -lvtkIOImage-8.0-gd\
        -lvtkIOImport-8.0-gd\
        -lvtkIOInfovis-8.0-gd\
        -lvtkIOLegacy-8.0-gd\
        -lvtkIOLSDyna-8.0-gd\
        -lvtkIOMINC-8.0-gd\
        -lvtkIOMovie-8.0-gd\
        -lvtkIONetCDF-8.0-gd\
        -lvtkIOParallel-8.0-gd\
        -lvtkIOParallelXML-8.0-gd\
        -lvtkIOPLY-8.0-gd\
        -lvtkIOSQL-8.0-gd\
        -lvtkIOTecplotTable-8.0-gd\
        -lvtkIOVideo-8.0-gd\
        -lvtkIOXML-8.0-gd\
        -lvtkIOXMLParser-8.0-gd\
        -lvtkjpeg-8.0-gd\
        -lvtkjsoncpp-8.0-gd\
        -lvtklibharu-8.0-gd\
        -lvtklibxml2-8.0-gd\
        -lvtklz4-8.0-gd\
        -lvtkmetaio-8.0-gd\
        -lvtkNetCDF-8.0-gd\
        -lvtknetcdf_c++-gd\
        -lvtkoggtheora-8.0-gd\
        -lvtkParallelCore-8.0-gd\
        -lvtkpng-8.0-gd\
        -lvtkproj4-8.0-gd\
        -lvtkRenderingAnnotation-8.0-gd\
        -lvtkRenderingContext2D-8.0-gd\
        -lvtkRenderingContextOpenGL-8.0-gd\
        -lvtkRenderingCore-8.0-gd\
        -lvtkRenderingFreeType-8.0-gd\
        -lvtkRenderingGL2PS-8.0-gd\
        -lvtkRenderingImage-8.0-gd\
        -lvtkRenderingLabel-8.0-gd\
        -lvtkRenderingLIC-8.0-gd\
        -lvtkRenderingLOD-8.0-gd\
        -lvtkRenderingOpenGL-8.0-gd\
        -lvtkRenderingQt-8.0-gd\
        -lvtkRenderingVolume-8.0-gd\
        -lvtkRenderingVolumeOpenGL-8.0-gd\
        -lvtksqlite-8.0-gd\
        -lvtksys-8.0-gd\
        -lvtktiff-8.0-gd\
        -lvtkverdict-8.0-gd\
        -lvtkViewsContext2D-8.0-gd\
        -lvtkViewsCore-8.0-gd\
        -lvtkViewsInfovis-8.0-gd\
        -lvtkViewsQt-8.0-gd\
        -lvtkzlib-8.0-gd
LIBS += -LH:/PCL1.8.1/3rdParty/libLAS/lib\
        -lliblas\

} else {
LIBS += -LH:/PCL1.8.1/lib\
        -lpcl_common_release\
        -lpcl_features_release\
        -lpcl_filters_release\
        -lpcl_io_ply_release\
        -lpcl_io_release\
        -lpcl_kdtree_release\
        -lpcl_keypoints_release\
        -lpcl_ml_release\
        -lpcl_octree_release\
        -lpcl_outofcore_release\
        -lpcl_people_release\
        -lpcl_recognition_release\
        -lpcl_registration_release\
        -lpcl_sample_consensus_release\
        -lpcl_search_release\
        -lpcl_segmentation_release\
        -lpcl_stereo_release\
        -lpcl_surface_release\
        -lpcl_tracking_release\
        -lpcl_visualization_release\

LIBS += -LH:/PCL1.8.1/3rdParty/Boost/lib\
        -llibboost_atomic-vc141-mt-1_64\
        -llibboost_bzip2-vc141-mt-1_64\
        -llibboost_chrono-vc141-mt-1_64\
        -llibboost_container-vc141-mt-1_64\
        -llibboost_context-vc141-mt-1_64\
        -llibboost_coroutine-vc141-mt-1_64\
        -llibboost_date_time-vc141-mt-1_64\
        -llibboost_exception-vc141-mt-1_64\
        -llibboost_fiber-vc141-mt-1_64\
        -llibboost_filesystem-vc141-mt-1_64\
        -llibboost_graph-vc141-mt-1_64\
        -llibboost_graph_parallel-vc141-mt-1_64\
        -llibboost_iostreams-vc141-mt-1_64\
        -llibboost_locale-vc141-mt-1_64\
        -llibboost_log-vc141-mt-1_64\
        -llibboost_log_setup-vc141-mt-1_64\
        -llibboost_math_c99-vc141-mt-1_64\
        -llibboost_math_c99f-vc141-mt-1_64\
        -llibboost_math_c99l-vc141-mt-1_64\
        -llibboost_math_tr1-vc141-mt-1_64\
        -llibboost_math_tr1f-vc141-mt-1_64\
        -llibboost_math_tr1l-vc141-mt-1_64\
        -llibboost_mpi-vc141-mt-1_64\
        -llibboost_numpy-vc141-mt-1_64\
        -llibboost_numpy3-vc141-mt-1_64\
        -llibboost_prg_exec_monitor-vc141-mt-1_64\
        -llibboost_program_options-vc141-mt-1_64\
        -llibboost_python-vc141-mt-1_64\
        -llibboost_python3-vc141-mt-1_64\
        -llibboost_random-vc141-mt-1_64\
        -llibboost_regex-vc141-mt-1_64\
        -llibboost_serialization-vc141-mt-1_64\
        -llibboost_signals-vc141-mt-1_64\
        -llibboost_system-vc141-mt-1_64\
        -llibboost_test_exec_monitor-vc141-mt-1_64\
        -llibboost_thread-vc141-mt-1_64\
        -llibboost_timer-vc141-mt-1_64\
        -llibboost_type_erasure-vc141-mt-1_64\
        -llibboost_unit_test_framework-vc141-mt-1_64\
        -llibboost_wave-vc141-mt-1_64\
        -llibboost_wserialization-vc141-mt-1_64\
        -llibboost_zlib-vc141-mt-1_64\

LIBS += -LH:/PCL1.8.1/3rdParty/FLANN/lib\
        -lflann\
        -lflann_cpp\
        -lflann_cpp_s\
        -lflann_s

LIBS += -LH:/PCL1.8.1/3rdParty/OpenNI2/Lib\
        -lOpenNI2

LIBS += -LH:/PCL1.8.1/3rdParty/Qhull/lib\
        -lqhull\
        -lqhullcpp\
        -lqhullstatic\
        -lqhullstatic_r\
        -lqhull_p\
        -lqhull_r

LIBS += -LH:/PCL1.8.1/3rdParty/VTK/lib\
        -lvtkalglib-8.0\
        -lvtkChartsCore-8.0\
        -lvtkCommonColor-8.0\
        -lvtkCommonComputationalGeometry-8.0\
        -lvtkCommonCore-8.0\
        -lvtkCommonDataModel-8.0\
        -lvtkCommonExecutionModel-8.0\
        -lvtkCommonMath-8.0\
        -lvtkCommonMisc-8.0\
        -lvtkCommonSystem-8.0\
        -lvtkCommonTransforms-8.0\
        -lvtkDICOMParser-8.0\
        -lvtkDomainsChemistry-8.0\
#        -lvtkDomainsChemistryOpenGL2-8.0\
        -lvtkexoIIc-8.0\
        -lvtkexpat-8.0\
        -lvtkFiltersAMR-8.0\
        -lvtkFiltersCore-8.0\
        -lvtkFiltersExtraction-8.0\
        -lvtkFiltersFlowPaths-8.0\
        -lvtkFiltersGeneral-8.0\
        -lvtkFiltersGeneric-8.0\
        -lvtkFiltersGeometry-8.0\
        -lvtkFiltersHybrid-8.0\
        -lvtkFiltersHyperTree-8.0\
        -lvtkFiltersImaging-8.0\
        -lvtkFiltersModeling-8.0\
        -lvtkFiltersParallel-8.0\
        -lvtkFiltersParallelImaging-8.0\
        -lvtkFiltersProgrammable-8.0\
        -lvtkFiltersSelection-8.0\
        -lvtkFiltersSMP-8.0\
        -lvtkFiltersSources-8.0\
        -lvtkFiltersStatistics-8.0\
        -lvtkFiltersTexture-8.0\
        -lvtkFiltersVerdict-8.0\
        -lvtkfreetype-8.0\
        -lvtkGeovisCore-8.0\
#        -lvtkglew-8.0\
        -lvtkGUISupportQt-8.0\
        -lvtkGUISupportQtSQL-8.0\
        -lvtkhdf5-8.0\
        -lvtkhdf5_hl-8.0\
        -lvtkImagingColor-8.0\
        -lvtkImagingCore-8.0\
        -lvtkImagingFourier-8.0\
        -lvtkImagingGeneral-8.0\
        -lvtkImagingHybrid-8.0\
        -lvtkImagingMath-8.0\
        -lvtkImagingMorphological-8.0\
        -lvtkImagingSources-8.0\
        -lvtkImagingStatistics-8.0\
        -lvtkImagingStencil-8.0\
        -lvtkInfovisCore-8.0\
        -lvtkInfovisLayout-8.0\
        -lvtkInteractionImage-8.0\
        -lvtkInteractionStyle-8.0\
        -lvtkInteractionWidgets-8.0\
        -lvtkIOAMR-8.0\
        -lvtkIOCore-8.0\
        -lvtkIOEnSight-8.0\
        -lvtkIOExodus-8.0\
        -lvtkIOExport-8.0\
        -lvtkIOGeometry-8.0\
        -lvtkIOImage-8.0\
        -lvtkIOImport-8.0\
        -lvtkIOInfovis-8.0\
        -lvtkIOLegacy-8.0\
        -lvtkIOLSDyna-8.0\
        -lvtkIOMINC-8.0\
        -lvtkIOMovie-8.0\
        -lvtkIONetCDF-8.0\
        -lvtkIOParallel-8.0\
        -lvtkIOParallelXML-8.0\
        -lvtkIOPLY-8.0\
        -lvtkIOSQL-8.0\
        -lvtkIOVideo-8.0\
        -lvtkIOXML-8.0\
        -lvtkIOXMLParser-8.0\
        -lvtkjpeg-8.0\
        -lvtkjsoncpp-8.0\
        -lvtklibxml2-8.0\
        -lvtkmetaio-8.0\
        -lvtkNetCDF-8.0\
        -lvtknetcdf_c++\
        -lvtkoggtheora-8.0\
        -lvtkParallelCore-8.0\
        -lvtkpng-8.0\
        -lvtkproj4-8.0\
        -lvtkRenderingAnnotation-8.0\
        -lvtkRenderingContext2D-8.0\
        -lvtkRenderingContextOpenGL-8.0\
        -lvtkRenderingCore-8.0\
        -lvtkRenderingFreeType-8.0\
        -lvtkRenderingImage-8.0\
        -lvtkRenderingLabel-8.0\
        -lvtkRenderingLOD-8.0\
        -lvtkRenderingOpenGL-8.0\
        -lvtkRenderingQt-8.0\
        -lvtkRenderingVolume-8.0\
        -lvtkRenderingVolumeOpenGL-8.0\
        -lvtksqlite-8.0\
        -lvtksys-8.0\
        -lvtktiff-8.0\
        -lvtkverdict-8.0\
        -lvtkViewsContext2D-8.0\
        -lvtkViewsCore-8.0\
        -lvtkViewsInfovis-8.0\
        -lvtkViewsQt-8.0\
        -lvtkzlib-8.0
LIBS += -LH:/PCL1.8.1/3rdParty/libLAS/lib\
        -lliblas\
}

根据自己的PCL安装位置,选择自己的文件路径。本人根据自己的需求,又配置了一下自己所用到的库,这两个文件夹替换PCL安装的文件夹
在这里插入图片描述
liblis和vtk文件可以私信,文件太大没往云盘传。

致谢文章中的几篇博客,本文仅记录自己的工作过程,存在不当的地方请包涵,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值