PCL1.8.1+QT5.14.2环境配置
PCL1.8.1安装
双击pcl安装包按照安装向导进行安装:
安装过程中注意以下四点:
- pcl与QT进行联合开发的情况下,QT因为不支持带中文和空格的路径,因此将pcl安装再C盘下,对应路径如下图所示:
- 安装过程中需要将OPENNI2安装到目录C:\PCL1.8.1\3rdParty\OpenNI2。在OpenNI2安装时会提示文件路径过长,此时点击确认即可。
- pcl与QT进行联合开发的情况下,原来的VTK不能用了,需要替换。将原来C:\PCL1.8.1\3rdParty\VTK目录下的文件替换成自己编译好的VTK文件,并且将C:\PCL1.8.1\3rdParty\VTK\plugins\designer下的两个插件,复制到QT目录下E:\Qt\Qt5.14.2\5.14.2\msvc2017_64\plugins\designer。
这里贴一个我用的VTK资源:
链接:https://pan.baidu.com/s/1DtsExncY5xzuMUChnzkOUQ
提取码:cb2x
4. 最后还需配置pcl对应的环境变量:
QT中的相关配置
新建一个pcl.pri文件,再pro文件中添加如下一句话:
include($$PWD/pcl.pri)
pcl.pri文件中的内容为:
INCLUDEPATH += C:\PCL1.8.1\include\pcl-1.8
INCLUDEPATH += C:\PCL1.8.1\include\pcl-1.8\pcl
INCLUDEPATH += C:\PCL1.8.1\3rdParty\Boost\include\boost-1_64
INCLUDEPATH += C:\PCL1.8.1\3rdParty\Boost\include\boost-1_64\boost
INCLUDEPATH += C:\PCL1.8.1\3rdParty\Eigen\eigen3
INCLUDEPATH += C:\PCL1.8.1\3rdParty\FLANN\include
INCLUDEPATH += C:\PCL1.8.1\3rdParty\FLANN\include\flann
INCLUDEPATH += C:\PCL1.8.1\3rdParty\OpenNI2\Include
INCLUDEPATH += C:\PCL1.8.1\3rdParty\Qhull\include
INCLUDEPATH += C:\PCL1.8.1\3rdParty\VTK\include\vtk-8.0
CONFIG(debug,debug|release){
LIBS += -LC:\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 += -LC:\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 += -LC:\PCL1.8.1\3rdParty\FLANN\lib\
-lflann-gd\
-lflann_cpp-gd\
-lflann_cpp_s-gd\
-lflann_s-gd
LIBS += -LC:\PCL1.8.1\3rdParty\OpenNI2\Lib\
-lOpenNI2
LIBS += -LC:\PCL1.8.1\3rdParty\Qhull\lib\
-lqhull_d\
-lqhullcpp_d\
-lqhullstatic_d\
-lqhullstatic_r_d\
-lqhull_p_d\
-lqhull_r_d
LIBS += -LC:\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\
} else {
LIBS += -LC:\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 += -LC:\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 += -LC:\PCL1.8.1\3rdParty\FLANN\lib\
-lflann\
-lflann_cpp\
-lflann_cpp_s\
-lflann_s
LIBS += -LC:\PCL1.8.1\3rdParty\Lib\
-lOpenNI2
LIBS += -LC:\PCL1.8.1\3rdParty\Qhull\lib\
-lqhull\
-lqhullcpp\
-lqhullstatic\
-lqhullstatic_r\
-lqhull_p\
-lqhull_r
LIBS += -LC:\PCL1.8.1\3rdParty\VTK\lib\
}
特别的QT中几个需要设置的地方:
- 帮助–>关于插件–>C++ -->ClangCodeModel的勾去掉。
3.工具–>选项–>文本编辑器 -->行为,更改编码格式为GB: