工具:
PCL1.8.0
Visual Studio 2013(Uitimate)
QT5.9.1(MSVC2013)
CBD debugger(win10SDK)官网下载
若需要在VS中使用QT显示界面还需下载qt-vsaddin-msvc2013-2.2.0.vsix官网下载
环境:
win7旗舰版,64位系统
VS2013根据提示安装即可,PCL相应安装在另一篇博客中。
建议安装顺序VS、Qt、qt-vsaddin。
首先打开安装包,可跳过Qt账户登录
然后选择QT组件。
编译器选择了MinGW构件和msvc2013 64-bit构件。
Tools下建议选择MinGW+CDB Debugger。
“Qt 5.9.1”节点下面是 Qt 的功能模块,包括用于不同编译器和平台的模块,这些模块包括内容如下:
① MinGW 5.3.0 32 bit 编译器模块。MinGW 是 Minimalist GNU for Windows 的缩写,MinGW是 Windows 平台上使用的 GNU 工具集导入库的集合。
② 用于 UWP 编译的模块。UWP 是 Windows 10 中 Universal Windows Platform 的简称,有不同编译器类型的 UWP。
③ 用于 windows 平台上的 MSVC 编译器模块,如 msvc2015 32-bit 和 msvc2015 64-bit 等。要安装 MSVC 编译器的模块,需要计算机上已经安装相应版本的 Visual Studio。
④ 用于 Android 平台的模块,如 Android x86 和 Android ARMv7。
⑤ Sources 模块是 Qt 的源程序。
⑥ Qt Charts 是二维图表模块,用于绘制柱状图、饼图、曲线图等常用二维图表。
⑦ Qt Data Visualization 是三维数据图表模块,用于数据的三维显示,如散点的三维空间分布、三维曲面等。
⑧ Qt Purchasing、Qt WebEngine、Qt Network Auth(TP)等其他模块,括号里的 TP 表示技术预览(Technology Preview)。
⑨ Qt Scritp(Deprecated)是脚本模块,括号里的“Deprecated”表示这是已经过时的模块。
后带有TP的为预展示模块,一般不选择。
“Tools”节点下面是一些工具软件,包括内容如下:
① Qt Creator 4.3.1 是用于 Qt 程序开发的 IDE,强制安装。
② 用于和 CDB 调试工具对接,默认安装,一般用于调试 VC 编译的 Qt 程序。
③ MinGW 5.3.0 是 MinGW 编译工具链。
④ Strawberry Perl 是一个 Perl 语言工具,一般不选择。
最后根据导向一步步操作,完成QT安装。
由于Qt没有配有msvc的调试器,需要下载Win10SKD。
解压缩镜像文件后,在文件夹内打开winsdksetup.exe,只勾选 Debugging tools for Windows 安装即可。
首先在工具中打开选项
接着添加新安装的调试器
选择安装好的debug tools for windows文件夹下的cbd.exe,并更改调试器名称。
在构建套件的Desktop Qt5.9.1msv2013中选择刚添加的调试器,完成MSVC2013套件构建。
在 .pro 文件中添加如下配置
INCLUDEPATH += D:\PCL-1.8\PCL1.8.0\3rdParty\OpenNI2\Include
INCLUDEPATH += D:\PCL-1.8\PCL1.8.0\include\pcl-1.8
INCLUDEPATH += D:\PCL-1.8\PCL1.8.0\include\pcl-1.8\pcl
INCLUDEPATH += D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\include\boost-1_59
INCLUDEPATH += D:\PCL-1.8\PCL1.8.0\3rdParty\Eigen\eigen3
INCLUDEPATH += D:\PCL-1.8\PCL1.8.0\3rdParty\FLANN\include
INCLUDEPATH += D:\PCL-1.8\PCL1.8.0\3rdParty\Qhull\include
INCLUDEPATH += D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\include\vtk-7.0
CONFIG(debug,debug | release ){
LIBS += D:\PCL-1.8\PCL1.8.0\lib\pcl_apps_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_common_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_features_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_filters_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_io_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_io_ply_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_kdtree_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_keypoints_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_ml_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_octree_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_outofcore_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_people_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_recognition_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_registration_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_sample_consensus_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_search_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_segmentation_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_simulation_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_stereo_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_surface_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_tracking_debug.lib\
D:\PCL-1.8\PCL1.8.0\lib\pcl_visualization_debug.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_atomic-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_chrono-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_container-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_context-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_coroutine-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_date_time-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_exception-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_filesystem-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_graph-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_iostreams-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_locale-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_log_setup-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_log-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_math_c99f-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_math_c99l-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_math_c99-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_math_tr1f-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_math_tr1l-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_math_tr1-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_mpi-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_prg_exec_monitor-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_program_options-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_random-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_regex-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_serialization-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_signals-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_system-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_test_exec_monitor-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_thread-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_timer-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_unit_test_framework-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_wave-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Boost\lib\libboost_wserialization-vc120-mt-gd-1_59.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\FLANN\lib\flann_cpp_s-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\FLANN\lib\flann_s-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\FLANN\lib\flann-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\OpenNI2\Lib\OpenNI2.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Qhull\lib\qhull_p-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Qhull\lib\qhull_r-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Qhull\lib\qhullcpp-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Qhull\lib\qhull-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Qhull\lib\qhullstatic_r-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\Qhull\lib\qhullstatic-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkalglib-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkChartsCore-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkCommonColor-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkCommonComputationalGeometry-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkCommonCore-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkCommonDataModel-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkCommonExecutionModel-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkCommonMath-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkCommonMisc-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkCommonSystem-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkCommonTransforms-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkDICOMParser-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkDomainsChemistry-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkDomainsChemistryOpenGL2-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkexoIIc-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkexpat-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersAMR-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersCore-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersExtraction-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersFlowPaths-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersGeneral-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersGeneric-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersGeometry-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersHybrid-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersHyperTree-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersImaging-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersModeling-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersParallel-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersParallelImaging-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersProgrammable-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersSelection-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersSMP-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersSources-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersStatistics-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersTexture-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkFiltersVerdict-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkfreetype-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkGeovisCore-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkglew-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkGUISupportQt-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkGUISupportQtSQL-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkhdf5_hl-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkhdf5-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkImagingColor-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkImagingCore-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkImagingFourier-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkImagingGeneral-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkImagingHybrid-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkImagingMath-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkImagingMorphological-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkImagingSources-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkImagingStatistics-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkImagingStencil-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkInfovisCore-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkInfovisLayout-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkInteractionImage-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkInteractionStyle-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkInteractionWidgets-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOAMR-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOCore-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOEnSight-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOExodus-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOExport-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOGeometry-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOImage-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOImport-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOInfovis-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOLegacy-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOLSDyna-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOMINC-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOMovie-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIONetCDF-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOParallel-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOParallelXML-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOPLY-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOSQL-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOVideo-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOXML-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkIOXMLParser-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkjpeg-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkjsoncpp-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtklibxml2-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkmetaio-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkNetCDF_cxx-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkNetCDF-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkoggtheora-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkParallelCore-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkpng-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkproj4-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkRenderingAnnotation-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkRenderingContext2D-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkRenderingContextOpenGL2-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkRenderingCore-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkRenderingFreeType-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkRenderingImage-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkRenderingLabel-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkRenderingLOD-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkRenderingOpenGL2-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkRenderingQt-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkRenderingVolume-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkRenderingVolumeOpenGL2-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtksqlite-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtksys-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtktiff-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkverdict-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkViewsContext2D-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkViewsCore-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkViewsInfovis-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkViewsQt-7.0-gd.lib\
D:\PCL-1.8\PCL1.8.0\3rdParty\VTK\lib\vtkzlib-7.0-gd.lib
}
else{}
完成配置
测试代码:
#include
#include
#include
#include
int user_data;
void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
viewer.setBackgroundColor(1.0, 0.5, 1.0);
pcl::PointXYZ o;
o.x = 1.0;
o.y = 0;
o.z = 0;
viewer.addSphere(o, 0.25, "sphere", 0);
std::cout << "i only run once" << std::endl;
}
void viewerPsycho(pcl::visualization::PCLVisualizer& viewer)
{
static unsigned count = 0;
std::stringstream ss;
ss << "Once per viewer loop: " << count++;
viewer.removeShape("text", 0);
viewer.addText(ss.str(), 200, 300, "text", 0);
//FIXME: possible race condition here:
user_data++;
}
int main()
{
pcl::PointCloud::Ptr cloud(new pcl::PointCloud);
pcl::io::loadPCDFile("my_point_cloud.pcd", *cloud);
pcl::visualization::CloudViewer viewer("Cloud Viewer");
//blocks until the cloud is actually rendered
viewer.showCloud(cloud);
//use the following functions to get access to the underlying more advanced/powerful
//PCLVisualizer
//This will only get called once
viewer.runOnVisualizationThreadOnce(viewerOneOff);
//This will get called once per visualization iteration
viewer.runOnVisualizationThread(viewerPsycho);
while (!viewer.wasStopped())
{
//you can also do cool processing here
//FIXME: Note that this is running in a separate thread from viewerPsycho
//and you should guard against race conditions yourself...
user_data++;
}
return 0;
}
参考文章:
https://blog.csdn.net/qq_34719188/article/details/80601642
https://blog.csdn.net/knaha/article/details/103498141