目录
配置环境所需软件
为了配置环境,需要安装以下软件:PCL(点云库),Qt(跨平台GUI框架),VS(Visual Studio,集成开发环境),VTK(可视化工具包),以及CMake(交叉平台的自动化构建工具)
一.安装PCL
首先进入PCL的Github中Releases页面Releases · PointCloudLibrary/pcl (github.com)https://github.com/PointCloudLibrary/pcl/releases
进入后下载此文件
这里默认选择第二个为所有用户添加到system Path
这里3rd Party Libraries 是第三方库,默认勾选
二.安装Qt
Qt需要用官方安装器在线下载,所以我们首先要下载官方安装器,官网下载较慢,因此推荐用清华源镜像站下载Index of /qt/archive/online_installers/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirrorhttps://mirrors.tuna.tsinghua.edu.cn/qt/archive/online_installers/
选择最新版进行下载
若没有账号则点击注册
这里选择自定义安装
默认选项不用处理,勾选Qt最新版即可
三.安装VS
选择C++桌面开发,默认选项不用处理,在右侧的Windows SDK中选择适合自己系统的SDK
四.安装CMake
首先进入官网下载,选择.msi文件Download CMakehttps://cmake.org/download/
这里同样选择为所有用户添加到system Path
五.下载VTK
打开PCL目录,可以看到已含有编译好的VTK库,但是其中不含和Qt联合编译生成的用来显示点云的库文件,所以需要我们单独编译VTK。
首先查看PCL中VTK文件夹里任意文件名中的版本号
可以看到版本为9.2,单独下载的VTK文件需与PCL自带的一致,那么接下来我们去官网下载对应版本的zip文件
标签 · VTK / VTK · GitLab (kitware.com)https://gitlab.kitware.com/vtk/vtk/-/tags
下载好后解压缩到文件夹
六.编译VTK
首先创建两个文件夹,分别名为vtk-install和vtk-prefix,其中vtk-install是CMake编译后生成VS解决方案的文件夹,vtk-prefix是存放VS编译后所生成文件,也就是我们所需要的库文件
接下来使用CMake编译项目,选择目录,然后点击Add Entry按钮添加缓存变量,名称为CMAKE_DEBUG_POSTFIX,类型为 STRING,值设置为 -gd,之后点击Configure
这里默认选择VS2022,x64,第三个不用填,然后点击Finish,等待编译完成
编译完成后在CMAKE_INSTALL_PREFIX选择自己的vtk-prefix文件夹
勾选Grouped和Advanced,中搜索QT,将所有与QT相关的选项设置为WANT,然后点击Configure
这时会报错,我们选择Qt目录中的CMake文件夹,然后再次点击Configure
再次报错,不用处理,继续点击Configure
现在没有报红,点击Generate后等待出现此提示
找到vtk-install文件夹,可以发现有一个VTK.sln,我们用VS打开
打开VS后进入此界面,点击此处将Debug更改为Release
右键点击解决方案,选择生成解决方案,等待完成
完成后找到INSTALL,右键点击,首先点击设为启动项目,然后点击生成
最后vtk-prefix就出现了我们需要的文件
最后再如上再生成一次Debug版本的项目
七.配置Qt
首先,我们要将vtk-prefix里的文件夹全部复制到PCL的VTK文件夹中,重名则跳过
打开Qt新建项目
注意编译器要选择MSVC
编辑项目的.pro文件,将以下的内容添加到其中,将PCL的路径根据自身情况修改
INCLUDEPATH += 'D:/PCL 1.13.1/include/pcl-1.13/'
INCLUDEPATH += 'D:/PCL 1.13.1/3rdParty/Boost/include/boost-1_82/'
INCLUDEPATH += 'D:/PCL 1.13.1/3rdParty/Eigen/eigen3/'
INCLUDEPATH += 'D:/PCL 1.13.1/3rdParty/FLANN/include/'
INCLUDEPATH += 'D:/PCL 1.13.1/3rdParty/OpenNI2/Include/'
INCLUDEPATH += 'D:/PCL 1.13.1/3rdParty/Qhull/include/'
INCLUDEPATH += 'D:/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2/'
另外还需分Debug和Release分别添加PCL包含的所有LIBS,其中'-L'后面接文件夹目录,各行首的'-l'后面接不含后缀的文件名,各行尾的'\'表示连接下一行,注意每个目录中最后一个文件末尾不含'\',其中带d或gd的为Debug版本,其它为Release版本
共有如下几个目录需要添加
LIBS += -L'D:\PCL 1.13.1\lib'\
LIBS += -L'D:\PCL 1.13.1\3rdParty/Boost\lib'\
LIBS += -L'D:\PCL 1.13.1\3rdParty\FLANN\lib'\
LIBS += -L'D:\PCL 1.13.1\3rdParty\Qhull\lib'\
LIBS += -L'D:\PCL 1.13.1\3rdParty\OpenNI2\Lib'\
LIBS += -L'D:\PCL 1.13.1\3rdParty\VTK\lib'\
库文件的数量很多,明显我们不能手动去一个一个地输入,这时要用到批处理命令。新建txt文件,将如下代码复制到其中,然后更改后缀为.bat,将此文件复制到上面的目录中,双击运行即可自动格式化输出文件夹中所有文件名到该目录下的output.txt,注意最后一个文件末尾的'\'应手动删除,在这之前为了区分Debug和Release版本我们可以先从文件夹中手动移出Debug版本,然后各生成结束后再放回
@echo off
setlocal enabledelayedexpansion
rem 设置目标文件名
set "outputFile=output.txt"
rem 清空或创建输出文件
type nul > "%outputFile%"
rem 遍历当前目录下的所有以".lib"结尾的文件
set isFirstFile=0
for %%f in (*.lib) do (
set "filename=%%~nf"
echo -l!filename!\>> "%outputFile%"
)
endlocal
最后需要添加的配置示例如下:
QT += openglwidgets
INCLUDEPATH += 'D:/PCL 1.13.1/include/pcl-1.13/'
INCLUDEPATH += 'D:/PCL 1.13.1/3rdParty/Boost/include/boost-1_82/'
INCLUDEPATH += 'D:/PCL 1.13.1/3rdParty/Eigen/eigen3/'
INCLUDEPATH += 'D:/PCL 1.13.1/3rdParty/FLANN/include/'
INCLUDEPATH += 'D:/PCL 1.13.1/3rdParty/OpenNI2/Include/'
INCLUDEPATH += 'D:/PCL 1.13.1/3rdParty/Qhull/include/'
INCLUDEPATH += 'D:/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2/'
CONFIG += debug_and_release
CONFIG(debug, debug|release){
LIBS += -L'D:\PCL 1.13.1\lib'\
-lpcl_commond\
-lpcl_featuresd\
-lpcl_filtersd\
-lpcl_iod\
-lpcl_io_plyd\
-lpcl_kdtreed\
-lpcl_keypointsd\
-lpcl_mld\
-lpcl_octreed\
-lpcl_outofcored\
-lpcl_peopled\
-lpcl_recognitiond\
-lpcl_registrationd\
-lpcl_sample_consensusd\
-lpcl_searchd\
-lpcl_segmentationd\
-lpcl_stereod\
-lpcl_surfaced\
-lpcl_trackingd\
-lpcl_visualizationd
LIBS += -L'D:\PCL 1.13.1\3rdParty/Boost\lib'\
-llibboost_atomic-vc143-mt-gd-x64-1_82\
-llibboost_bzip2-vc143-mt-gd-x64-1_82\
-llibboost_chrono-vc143-mt-gd-x64-1_82\
-llibboost_container-vc143-mt-gd-x64-1_82\
-llibboost_context-vc143-mt-gd-x64-1_82\
-llibboost_contract-vc143-mt-gd-x64-1_82\
-llibboost_coroutine-vc143-mt-gd-x64-1_82\
-llibboost_date_time-vc143-mt-gd-x64-1_82\
-llibboost_exception-vc143-mt-gd-x64-1_82\
-llibboost_fiber-vc143-mt-gd-x64-1_82\
-llibboost_filesystem-vc143-mt-gd-x64-1_82\
-llibboost_graph-vc143-mt-gd-x64-1_82\
-llibboost_graph_parallel-vc143-mt-gd-x64-1_82\
-llibboost_iostreams-vc143-mt-gd-x64-1_82\
-llibboost_json-vc143-mt-gd-x64-1_82\
-llibboost_locale-vc143-mt-gd-x64-1_82\
-llibboost_log-vc143-mt-gd-x64-1_82\
-llibboost_log_setup-vc143-mt-gd-x64-1_82\
-llibboost_math_c99-vc143-mt-gd-x64-1_82\
-llibboost_math_c99f-vc143-mt-gd-x64-1_82\
-llibboost_math_c99l-vc143-mt-gd-x64-1_82\
-llibboost_math_tr1-vc143-mt-gd-x64-1_82\
-llibboost_math_tr1f-vc143-mt-gd-x64-1_82\
-llibboost_math_tr1l-vc143-mt-gd-x64-1_82\
-llibboost_mpi-vc143-mt-gd-x64-1_82\
-llibboost_nowide-vc143-mt-gd-x64-1_82\
-llibboost_numpy310-vc143-mt-gd-x64-1_82\
-llibboost_prg_exec_monitor-vc143-mt-gd-x64-1_82\
-llibboost_program_options-vc143-mt-gd-x64-1_82\
-llibboost_python310-vc143-mt-gd-x64-1_82\
-llibboost_random-vc143-mt-gd-x64-1_82\
-llibboost_regex-vc143-mt-gd-x64-1_82\
-llibboost_serialization-vc143-mt-gd-x64-1_82\
-llibboost_stacktrace_noop-vc143-mt-gd-x64-1_82\
-llibboost_stacktrace_windbg-vc143-mt-gd-x64-1_82\
-llibboost_stacktrace_windbg_cached-vc143-mt-gd-x64-1_82\
-llibboost_system-vc143-mt-gd-x64-1_82\
-llibboost_test_exec_monitor-vc143-mt-gd-x64-1_82\
-llibboost_thread-vc143-mt-gd-x64-1_82\
-llibboost_timer-vc143-mt-gd-x64-1_82\
-llibboost_type_erasure-vc143-mt-gd-x64-1_82\
-llibboost_unit_test_framework-vc143-mt-gd-x64-1_82\
-llibboost_url-vc143-mt-gd-x64-1_82\
-llibboost_wave-vc143-mt-gd-x64-1_82\
-llibboost_wserialization-vc143-mt-gd-x64-1_82\
-llibboost_zlib-vc143-mt-gd-x64-1_82
LIBS += -L'D:\PCL 1.13.1\3rdParty\FLANN\lib'\
-lflann-gd\
-lflann_cpp-gd\
-lflann_cpp_s-gd\
-lflann_s-gd
LIBS += -L'D:\PCL 1.13.1\3rdParty\Qhull\lib'\
-lqhullcpp_d\
-lqhullstatic_d\
-lqhullstatic_rd\
-lqhull_rd
LIBS += -L'D:\PCL 1.13.1\3rdParty\OpenNI2\Lib'\
-lOpenNI2
LIBS += -L'D:\PCL 1.13.1\3rdParty\VTK\lib'\
-lvtkcgns-9.2-gd\
-lvtkChartsCore-9.2-gd\
-lvtkCommonColor-9.2-gd\
-lvtkCommonComputationalGeometry-9.2-gd\
-lvtkCommonCore-9.2-gd\
-lvtkCommonDataModel-9.2-gd\
-lvtkCommonExecutionModel-9.2-gd\
-lvtkCommonMath-9.2-gd\
-lvtkCommonMisc-9.2-gd\
-lvtkCommonSystem-9.2-gd\
-lvtkCommonTransforms-9.2-gd\
-lvtkDICOMParser-9.2-gd\
-lvtkDomainsChemistry-9.2-gd\
-lvtkDomainsChemistryOpenGL2-9.2-gd\
-lvtkdoubleconversion-9.2-gd\
-lvtkexodusII-9.2-gd\
-lvtkexpat-9.2-gd\
-lvtkFiltersAMR-9.2-gd\
-lvtkFiltersCore-9.2-gd\
-lvtkFiltersExtraction-9.2-gd\
-lvtkFiltersFlowPaths-9.2-gd\
-lvtkFiltersGeneral-9.2-gd\
-lvtkFiltersGeneric-9.2-gd\
-lvtkFiltersGeometry-9.2-gd\
-lvtkFiltersHybrid-9.2-gd\
-lvtkFiltersHyperTree-9.2-gd\
-lvtkFiltersImaging-9.2-gd\
-lvtkFiltersModeling-9.2-gd\
-lvtkFiltersParallel-9.2-gd\
-lvtkFiltersParallelImaging-9.2-gd\
-lvtkFiltersPoints-9.2-gd\
-lvtkFiltersProgrammable-9.2-gd\
-lvtkFiltersSelection-9.2-gd\
-lvtkFiltersSMP-9.2-gd\
-lvtkFiltersSources-9.2-gd\
-lvtkFiltersStatistics-9.2-gd\
-lvtkFiltersTexture-9.2-gd\
-lvtkFiltersTopology-9.2-gd\
-lvtkFiltersVerdict-9.2-gd\
-lvtkfmt-9.2-gd\
-lvtkfreetype-9.2-gd\
-lvtkGeovisCore-9.2-gd\
-lvtkgl2ps-9.2-gd\
-lvtkglew-9.2-gd\
-lvtkGUISupportQt-9.2-gd\
-lvtkhdf5-9.2-gd\
-lvtkhdf5_hl-9.2-gd\
-lvtkImagingColor-9.2-gd\
-lvtkImagingCore-9.2-gd\
-lvtkImagingFourier-9.2-gd\
-lvtkImagingGeneral-9.2-gd\
-lvtkImagingHybrid-9.2-gd\
-lvtkImagingMath-9.2-gd\
-lvtkImagingMorphological-9.2-gd\
-lvtkImagingSources-9.2-gd\
-lvtkImagingStatistics-9.2-gd\
-lvtkImagingStencil-9.2-gd\
-lvtkInfovisCore-9.2-gd\
-lvtkInfovisLayout-9.2-gd\
-lvtkInteractionImage-9.2-gd\
-lvtkInteractionStyle-9.2-gd\
-lvtkInteractionWidgets-9.2-gd\
-lvtkIOAMR-9.2-gd\
-lvtkIOAsynchronous-9.2-gd\
-lvtkIOCesium3DTiles-9.2-gd\
-lvtkIOCGNSReader-9.2-gd\
-lvtkIOChemistry-9.2-gd\
-lvtkIOCityGML-9.2-gd\
-lvtkIOCONVERGECFD-9.2-gd\
-lvtkIOCore-9.2-gd\
-lvtkIOEnSight-9.2-gd\
-lvtkIOExodus-9.2-gd\
-lvtkIOExport-9.2-gd\
-lvtkIOExportGL2PS-9.2-gd\
-lvtkIOExportPDF-9.2-gd\
-lvtkIOGeometry-9.2-gd\
-lvtkIOHDF-9.2-gd\
-lvtkIOImage-9.2-gd\
-lvtkIOImport-9.2-gd\
-lvtkIOInfovis-9.2-gd\
-lvtkIOIOSS-9.2-gd\
-lvtkIOLegacy-9.2-gd\
-lvtkIOLSDyna-9.2-gd\
-lvtkIOMINC-9.2-gd\
-lvtkIOMotionFX-9.2-gd\
-lvtkIOMovie-9.2-gd\
-lvtkIONetCDF-9.2-gd\
-lvtkIOOggTheora-9.2-gd\
-lvtkIOParallel-9.2-gd\
-lvtkIOParallelXML-9.2-gd\
-lvtkIOPLY-9.2-gd\
-lvtkIOSegY-9.2-gd\
-lvtkIOSQL-9.2-gd\
-lvtkioss-9.2-gd\
-lvtkIOTecplotTable-9.2-gd\
-lvtkIOVeraOut-9.2-gd\
-lvtkIOVideo-9.2-gd\
-lvtkIOXML-9.2-gd\
-lvtkIOXMLParser-9.2-gd\
-lvtkjpeg-9.2-gd\
-lvtkjsoncpp-9.2-gd\
-lvtkkissfft-9.2-gd\
-lvtklibharu-9.2-gd\
-lvtklibproj-9.2-gd\
-lvtklibxml2-9.2-gd\
-lvtkloguru-9.2-gd\
-lvtklz4-9.2-gd\
-lvtklzma-9.2-gd\
-lvtkmetaio-9.2-gd\
-lvtknetcdf-9.2-gd\
-lvtkogg-9.2-gd\
-lvtkParallelCore-9.2-gd\
-lvtkParallelDIY-9.2-gd\
-lvtkpng-9.2-gd\
-lvtkpugixml-9.2-gd\
-lvtkRenderingAnnotation-9.2-gd\
-lvtkRenderingContext2D-9.2-gd\
-lvtkRenderingContextOpenGL2-9.2-gd\
-lvtkRenderingCore-9.2-gd\
-lvtkRenderingFreeType-9.2-gd\
-lvtkRenderingGL2PSOpenGL2-9.2-gd\
-lvtkRenderingHyperTreeGrid-9.2-gd\
-lvtkRenderingImage-9.2-gd\
-lvtkRenderingLabel-9.2-gd\
-lvtkRenderingLICOpenGL2-9.2-gd\
-lvtkRenderingLOD-9.2-gd\
-lvtkRenderingOpenGL2-9.2-gd\
-lvtkRenderingQt-9.2-gd\
-lvtkRenderingSceneGraph-9.2-gd\
-lvtkRenderingUI-9.2-gd\
-lvtkRenderingVolume-9.2-gd\
-lvtkRenderingVolumeOpenGL2-9.2-gd\
-lvtkRenderingVtkJS-9.2-gd\
-lvtksqlite-9.2-gd\
-lvtksys-9.2-gd\
-lvtkTestingRendering-9.2-gd\
-lvtktheora-9.2-gd\
-lvtktiff-9.2-gd\
-lvtkverdict-9.2-gd\
-lvtkViewsContext2D-9.2-gd\
-lvtkViewsCore-9.2-gd\
-lvtkViewsInfovis-9.2-gd\
-lvtkViewsQt-9.2-gd\
-lvtkWrappingTools-9.2-gd\
-lvtkzlib-9.2-gd
} else {
LIBS += -L'D:\PCL 1.13.1\lib'\
-lpcl_common\
-lpcl_features\
-lpcl_filters\
-lpcl_io\
-lpcl_iod\
-lpcl_io_ply\
-lpcl_kdtree\
-lpcl_keypoints\
-lpcl_ml\
-lpcl_octree\
-lpcl_outofcore\
-lpcl_people\
-lpcl_recognition\
-lpcl_registration\
-lpcl_sample_consensus\
-lpcl_search\
-lpcl_segmentation\
-lpcl_stereo\
-lpcl_surface\
-lpcl_tracking\
-lpcl_visualization
LIBS += -L'D:\PCL 1.13.1\3rdParty/Boost\lib'\
-llibboost_atomic-vc143-mt-x64-1_82\
-llibboost_bzip2-vc143-mt-x64-1_82\
-llibboost_chrono-vc143-mt-x64-1_82\
-llibboost_container-vc143-mt-x64-1_82\
-llibboost_context-vc143-mt-x64-1_82\
-llibboost_contract-vc143-mt-x64-1_82\
-llibboost_coroutine-vc143-mt-x64-1_82\
-llibboost_date_time-vc143-mt-x64-1_82\
-llibboost_exception-vc143-mt-x64-1_82\
-llibboost_fiber-vc143-mt-x64-1_82\
-llibboost_filesystem-vc143-mt-x64-1_82\
-llibboost_graph-vc143-mt-x64-1_82\
-llibboost_graph_parallel-vc143-mt-x64-1_82\
-llibboost_iostreams-vc143-mt-x64-1_82\
-llibboost_json-vc143-mt-x64-1_82\
-llibboost_locale-vc143-mt-x64-1_82\
-llibboost_log-vc143-mt-x64-1_82\
-llibboost_log_setup-vc143-mt-x64-1_82\
-llibboost_math_c99-vc143-mt-x64-1_82\
-llibboost_math_c99f-vc143-mt-x64-1_82\
-llibboost_math_c99l-vc143-mt-x64-1_82\
-llibboost_math_tr1-vc143-mt-x64-1_82\
-llibboost_math_tr1f-vc143-mt-x64-1_82\
-llibboost_math_tr1l-vc143-mt-x64-1_82\
-llibboost_mpi-vc143-mt-x64-1_82\
-llibboost_nowide-vc143-mt-x64-1_82\
-llibboost_numpy310-vc143-mt-x64-1_82\
-llibboost_prg_exec_monitor-vc143-mt-x64-1_82\
-llibboost_program_options-vc143-mt-x64-1_82\
-llibboost_python310-vc143-mt-x64-1_82\
-llibboost_random-vc143-mt-x64-1_82\
-llibboost_regex-vc143-mt-x64-1_82\
-llibboost_serialization-vc143-mt-x64-1_82\
-llibboost_stacktrace_noop-vc143-mt-x64-1_82\
-llibboost_stacktrace_windbg-vc143-mt-x64-1_82\
-llibboost_stacktrace_windbg_cached-vc143-mt-x64-1_82\
-llibboost_system-vc143-mt-x64-1_82\
-llibboost_test_exec_monitor-vc143-mt-x64-1_82\
-llibboost_thread-vc143-mt-x64-1_82\
-llibboost_timer-vc143-mt-x64-1_82\
-llibboost_type_erasure-vc143-mt-x64-1_82\
-llibboost_unit_test_framework-vc143-mt-x64-1_82\
-llibboost_url-vc143-mt-x64-1_82\
-llibboost_wave-vc143-mt-x64-1_82\
-llibboost_wserialization-vc143-mt-x64-1_82\
-llibboost_zlib-vc143-mt-x64-1_82
LIBS += -L'D:\PCL 1.13.1\3rdParty\FLANN\lib'\
-lflann\
-lflann_cpp\
-lflann_cpp_s\
-lflann_s
LIBS += -L'D:\PCL 1.13.1\3rdParty\Qhull\lib'\
-lqhullcpp\
-lqhullstatic\
-lqhullstatic_r\
-lqhull_r
LIBS += -L'D:\PCL 1.13.1\3rdParty\OpenNI2\Lib'\
-lOpenNI2
LIBS += -L'D:\PCL 1.13.1\3rdParty\VTK\lib'\
-lvtkcgns-9.2\
-lvtkChartsCore-9.2\
-lvtkCommonColor-9.2\
-lvtkCommonComputationalGeometry-9.2\
-lvtkCommonCore-9.2\
-lvtkCommonDataModel-9.2\
-lvtkCommonExecutionModel-9.2\
-lvtkCommonMath-9.2\
-lvtkCommonMisc-9.2\
-lvtkCommonSystem-9.2\
-lvtkCommonTransforms-9.2\
-lvtkDICOMParser-9.2\
-lvtkDomainsChemistry-9.2\
-lvtkDomainsChemistryOpenGL2-9.2\
-lvtkdoubleconversion-9.2\
-lvtkexodusII-9.2\
-lvtkexpat-9.2\
-lvtkFiltersAMR-9.2\
-lvtkFiltersCore-9.2\
-lvtkFiltersExtraction-9.2\
-lvtkFiltersFlowPaths-9.2\
-lvtkFiltersGeneral-9.2\
-lvtkFiltersGeneric-9.2\
-lvtkFiltersGeometry-9.2\
-lvtkFiltersHybrid-9.2\
-lvtkFiltersHyperTree-9.2\
-lvtkFiltersImaging-9.2\
-lvtkFiltersModeling-9.2\
-lvtkFiltersParallel-9.2\
-lvtkFiltersParallelImaging-9.2\
-lvtkFiltersPoints-9.2\
-lvtkFiltersProgrammable-9.2\
-lvtkFiltersSelection-9.2\
-lvtkFiltersSMP-9.2\
-lvtkFiltersSources-9.2\
-lvtkFiltersStatistics-9.2\
-lvtkFiltersTexture-9.2\
-lvtkFiltersTopology-9.2\
-lvtkFiltersVerdict-9.2\
-lvtkfmt-9.2\
-lvtkfreetype-9.2\
-lvtkGeovisCore-9.2\
-lvtkgl2ps-9.2\
-lvtkglew-9.2\
-lvtkGUISupportQt-9.2\
-lvtkhdf5-9.2\
-lvtkhdf5_hl-9.2\
-lvtkImagingColor-9.2\
-lvtkImagingCore-9.2\
-lvtkImagingFourier-9.2\
-lvtkImagingGeneral-9.2\
-lvtkImagingHybrid-9.2\
-lvtkImagingMath-9.2\
-lvtkImagingMorphological-9.2\
-lvtkImagingSources-9.2\
-lvtkImagingStatistics-9.2\
-lvtkImagingStencil-9.2\
-lvtkInfovisCore-9.2\
-lvtkInfovisLayout-9.2\
-lvtkInteractionImage-9.2\
-lvtkInteractionStyle-9.2\
-lvtkInteractionWidgets-9.2\
-lvtkIOAMR-9.2\
-lvtkIOAsynchronous-9.2\
-lvtkIOCesium3DTiles-9.2\
-lvtkIOCGNSReader-9.2\
-lvtkIOChemistry-9.2\
-lvtkIOCityGML-9.2\
-lvtkIOCONVERGECFD-9.2\
-lvtkIOCore-9.2\
-lvtkIOEnSight-9.2\
-lvtkIOExodus-9.2\
-lvtkIOExport-9.2\
-lvtkIOExportGL2PS-9.2\
-lvtkIOExportPDF-9.2\
-lvtkIOGeometry-9.2\
-lvtkIOHDF-9.2\
-lvtkIOImage-9.2\
-lvtkIOImport-9.2\
-lvtkIOInfovis-9.2\
-lvtkIOIOSS-9.2\
-lvtkIOLegacy-9.2\
-lvtkIOLSDyna-9.2\
-lvtkIOMINC-9.2\
-lvtkIOMotionFX-9.2\
-lvtkIOMovie-9.2\
-lvtkIONetCDF-9.2\
-lvtkIOOggTheora-9.2\
-lvtkIOParallel-9.2\
-lvtkIOParallelXML-9.2\
-lvtkIOPLY-9.2\
-lvtkIOSegY-9.2\
-lvtkIOSQL-9.2\
-lvtkioss-9.2\
-lvtkIOTecplotTable-9.2\
-lvtkIOVeraOut-9.2\
-lvtkIOVideo-9.2\
-lvtkIOXML-9.2\
-lvtkIOXMLParser-9.2\
-lvtkjpeg-9.2\
-lvtkjsoncpp-9.2\
-lvtkkissfft-9.2\
-lvtklibharu-9.2\
-lvtklibproj-9.2\
-lvtklibxml2-9.2\
-lvtkloguru-9.2\
-lvtklz4-9.2\
-lvtklzma-9.2\
-lvtkmetaio-9.2\
-lvtknetcdf-9.2\
-lvtkogg-9.2\
-lvtkParallelCore-9.2\
-lvtkParallelDIY-9.2\
-lvtkpng-9.2\
-lvtkpugixml-9.2\
-lvtkRenderingAnnotation-9.2\
-lvtkRenderingContext2D-9.2\
-lvtkRenderingContextOpenGL2-9.2\
-lvtkRenderingCore-9.2\
-lvtkRenderingFreeType-9.2\
-lvtkRenderingGL2PSOpenGL2-9.2\
-lvtkRenderingHyperTreeGrid-9.2\
-lvtkRenderingImage-9.2\
-lvtkRenderingLabel-9.2\
-lvtkRenderingLICOpenGL2-9.2\
-lvtkRenderingLOD-9.2\
-lvtkRenderingOpenGL2-9.2\
-lvtkRenderingQt-9.2\
-lvtkRenderingSceneGraph-9.2\
-lvtkRenderingUI-9.2\
-lvtkRenderingVolume-9.2\
-lvtkRenderingVolumeOpenGL2-9.2\
-lvtkRenderingVtkJS-9.2\
-lvtksqlite-9.2\
-lvtksys-9.2\
-lvtkTestingRendering-9.2\
-lvtktheora-9.2\
-lvtktiff-9.2\
-lvtkverdict-9.2\
-lvtkViewsContext2D-9.2\
-lvtkViewsCore-9.2\
-lvtkViewsInfovis-9.2\
-lvtkViewsQt-9.2\
-lvtkWrappingTools-9.2\
-lvtkzlib-9.2
}
八.程序测试
首先下载点云模型并解压缩【免费】Rabbit兔子点云模型资源-CSDN文库https://download.csdn.net/download/weixin_67559204/88497477
将如下代码复制到main.cpp文件中,修改模型的路径
#include <QCoreApplication>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/io/ply_io.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <iostream>
using namespace std;
int main()
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
if (pcl::io::loadPLYFile<pcl::PointXYZ>("E:/Qt/PclTest/rabbit.ply", *cloud) == -1) //* load the file
{
PCL_ERROR("Couldn't read file test_ply.ply \n");
system("PAUSE");
return (-1);
}
pcl::visualization::CloudViewer viewer("Viewer");
viewer.showCloud(cloud);
system("PAUSE");
return (0);
}
选择Release模式运行
最后出现此界面即表示环境配置成功
完结撒花