Windows11+VS2022+PCL1.15.1安装和配置流程
一、下载安装VS2022
打开下面网址:
Downloads & Keys - Visual Studio Subscriptions
选择下载Visual Studio Enterprise 2022
更改安装的位置,选择一些安装模块,例如【使用C++的桌面开发】
二、下载安装PCL1.15.1
1、打开PCL的GitHub
Release PCL 1.15.1 · PointCloudLibrary/pcl · GitHub
2、下载两个文件
文件1:PCL-1.15.1-AllInOne-msvc2022-win64.exe
文件2:pcl-1.15.1-pdb-msvc2022-win64.zip
3、安装PCL-1.15.1-AllInOne-msvc2022-win64.exe
(1)选择Add PCL to the system PATH for all users
(2)安装目录改为除C盘以外的位置
(3)选定安装的组件
选择所有
4、重新安装OpenNI2
(1)在PCL 1.15.1\3rdParty\OpenNI2目录下,双击安装包OpenNI-Windows-x64-2.2
(2)点击 【Remove】卸载C盘目录下的OpenNI,然后重新选择新的安装路径进行安装。
新的安装路径放在跟PCL 1.15.1相同目录下的3rdParty\OpenNI2
5、安装pcl-1.15.1-pdb-msvc2022-win64.zip
(1)解压pcl-1.15.1-pdb-msvc2022-win64.zip
(2)将解压出来的.pdb文件拷贝到PCL 1.15.1\bin目录下
5、添加环境变量
添加以下环境变量
D:\Program Files\PCL 1.15.1\bin
D:\Program Files\PCL 1.15.1\3rdParty\VTK\bin
D:\Program Files\PCL 1.15.1\3rdParty\FLANN\bin
D:\Program Files\PCL 1.15.1\3rdParty\Qhull\bin
D:\Program Files\PCL 1.15.1\3rdParty\OpenNI2\Tools
D:\Program Files\PCL 1.15.1\3rdParty\OpenNI2\Redist
D:\Program Files\PCL 1.15.1\3rdParty\OpenNI2\Include
D:\Program Files\PCL 1.15.1\3rdParty\OpenNI2\Lib
三、配置VS2022的开发环境
1、创建空项目
2、调出【属性管理器 】
3、添加新项目属性表
以【Debug|x64】为例,右键Debug|x64,选择【添加新项目属性表】
4、在【VC++目录】——【包含目录】下添加头文件夹
包含目录如下:
D:\Program Files\PCL 1.15.1\include\pcl-1.15\pcl\io
D:\Program Files\PCL 1.15.1\include\pcl-1.15
D:\Program Files\PCL 1.15.1\include
D:\Program Files\PCL 1.15.1
D:\Program Files\PCL 1.15.1\3rdParty\Boost\include\boost-1_87
D:\Program Files\PCL 1.15.1\3rdParty\Eigen3\include\eigen3
D:\Program Files\PCL 1.15.1\3rdParty\Eigen3\include\eigen3\Eigen
D:\Program Files\PCL 1.15.1\3rdParty\Eigen3\include\eigen3\unsupported
D:\Program Files\PCL 1.15.1\3rdParty\Eigen3\include\eigen3\unsupported\Eigen
D:\Program Files\PCL 1.15.1\3rdParty\FLANN\include\flann
D:\Program Files\PCL 1.15.1\3rdParty\FLANN\include
D:\Program Files\PCL 1.15.1\3rdParty\OpenNI2\Include
D:\Program Files\PCL 1.15.1\3rdParty\Qhull\include\libqhullcpp
D:\Program Files\PCL 1.15.1\3rdParty\Qhull\include\libqhull_r
D:\Program Files\PCL 1.15.1\3rdParty\Qhull\include\libqhull
D:\Program Files\PCL 1.15.1\3rdParty\Qhull\include
D:\Program Files\PCL 1.15.1\3rdParty\VTK\include
D:\Program Files\PCL 1.15.1\3rdParty\VTK\include\vtk-9.4
5、在【VC++目录】——【库目录】下添加lib文件夹
lib文件夹如下:
D:\Program Files\PCL 1.15.1\lib
D:\Program Files\PCL 1.15.1\3rdParty\Boost\lib
D:\Program Files\PCL 1.15.1\3rdParty\FLANN\lib
D:\Program Files\PCL 1.15.1\3rdParty\OpenNI2\Lib
D:\Program Files\PCL 1.15.1\3rdParty\Qhull\lib
D:\Program Files\PCL 1.15.1\3rdParty\VTK\lib
6、在【链接器】——【输入】——【附加依赖项】下添加lib文件
(1)注意
①如果是debug模式,则添加debug的lib文件;如果是release模式,则添加 release的lib文件。
②需要添加PCL 1.15.1\lib目录和PCL 1.15.1\3rdParty\VTK\lib 里面的lib文件。
(2)导出lib文件名的方式
①导出debug相关的lib文件名:
在lib文件目录下,打开cmd,输入
dir/b *d.lib >debug.txt会在lib文件目录下生成debug.txt文件,里面保存了debug相关的lib文件名
②导出release相关 的lib文件名:
在lib文件目录下,打开cmd,输入
dir /b | findstr /R /E /I ".*[^d]\.lib$" > release.txt会在lib文件目录下生成release.txt文件,里面保存了release相关的lib文件名
(3)debug文件如下
pcl_commond.lib
pcl_featuresd.lib
pcl_filtersd.lib
pcl_iod.lib
pcl_io_plyd.lib
pcl_kdtreed.lib
pcl_keypointsd.lib
pcl_mld.lib
pcl_octreed.lib
pcl_outofcored.lib
pcl_peopled.lib
pcl_recognitiond.lib
pcl_registrationd.lib
pcl_sample_consensusd.lib
pcl_searchd.lib
pcl_segmentationd.lib
pcl_stereod.lib
pcl_surfaced.lib
pcl_trackingd.lib
pcl_visualizationd.lib
vtkcgns-9.4-gd.lib
vtkChartsCore-9.4-gd.lib
vtkCommonColor-9.4-gd.lib
vtkCommonComputationalGeometry-9.4-gd.lib
vtkCommonCore-9.4-gd.lib
vtkCommonDataModel-9.4-gd.lib
vtkCommonExecutionModel-9.4-gd.lib
vtkCommonMath-9.4-gd.lib
vtkCommonMisc-9.4-gd.lib
vtkCommonSystem-9.4-gd.lib
vtkCommonTransforms-9.4-gd.lib
vtkDICOMParser-9.4-gd.lib
vtkDomainsChemistry-9.4-gd.lib
vtkDomainsChemistryOpenGL2-9.4-gd.lib
vtkdoubleconversion-9.4-gd.lib
vtkexodusII-9.4-gd.lib
vtkexpat-9.4-gd.lib
vtkFiltersAMR-9.4-gd.lib
vtkFiltersCellGrid-9.4-gd.lib
vtkFiltersCore-9.4-gd.lib
vtkFiltersExtraction-9.4-gd.lib
vtkFiltersFlowPaths-9.4-gd.lib
vtkFiltersGeneral-9.4-gd.lib
vtkFiltersGeneric-9.4-gd.lib
vtkFiltersGeometry-9.4-gd.lib
vtkFiltersGeometryPreview-9.4-gd.lib
vtkFiltersHybrid-9.4-gd.lib
vtkFiltersHyperTree-9.4-gd.lib
vtkFiltersImaging-9.4-gd.lib
vtkFiltersModeling-9.4-gd.lib
vtkFiltersParallel-9.4-gd.lib
vtkFiltersParallelImaging-9.4-gd.lib
vtkFiltersPoints-9.4-gd.lib
vtkFiltersProgrammable-9.4-gd.lib
vtkFiltersReduction-9.4-gd.lib
vtkFiltersSelection-9.4-gd.lib
vtkFiltersSMP-9.4-gd.lib
vtkFiltersSources-9.4-gd.lib
vtkFiltersStatistics-9.4-gd.lib
vtkFiltersTemporal-9.4-gd.lib
vtkFiltersTensor-9.4-gd.lib
vtkFiltersTexture-9.4-gd.lib
vtkFiltersTopology-9.4-gd.lib
vtkFiltersVerdict-9.4-gd.lib
vtkfmt-9.4-gd.lib
vtkfreetype-9.4-gd.lib
vtkGeovisCore-9.4-gd.lib
vtkgl2ps-9.4-gd.lib
vtkglad-9.4-gd.lib
vtkhdf5-9.4-gd.lib
vtkhdf5_hl-9.4-gd.lib
vtkImagingColor-9.4-gd.lib
vtkImagingCore-9.4-gd.lib
vtkImagingFourier-9.4-gd.lib
vtkImagingGeneral-9.4-gd.lib
vtkImagingHybrid-9.4-gd.lib
vtkImagingMath-9.4-gd.lib
vtkImagingMorphological-9.4-gd.lib
vtkImagingSources-9.4-gd.lib
vtkImagingStatistics-9.4-gd.lib
vtkImagingStencil-9.4-gd.lib
vtkInfovisCore-9.4-gd.lib
vtkInfovisLayout-9.4-gd.lib
vtkInteractionImage-9.4-gd.lib
vtkInteractionStyle-9.4-gd.lib
vtkInteractionWidgets-9.4-gd.lib
vtkIOAMR-9.4-gd.lib
vtkIOAsynchronous-9.4-gd.lib
vtkIOCellGrid-9.4-gd.lib
vtkIOCesium3DTiles-9.4-gd.lib
vtkIOCGNSReader-9.4-gd.lib
vtkIOChemistry-9.4-gd.lib
vtkIOCityGML-9.4-gd.lib
vtkIOCONVERGECFD-9.4-gd.lib
vtkIOCore-9.4-gd.lib
vtkIOEngys-9.4-gd.lib
vtkIOEnSight-9.4-gd.lib
vtkIOERF-9.4-gd.lib
vtkIOExodus-9.4-gd.lib
vtkIOExport-9.4-gd.lib
vtkIOExportGL2PS-9.4-gd.lib
vtkIOExportPDF-9.4-gd.lib
vtkIOFDS-9.4-gd.lib
vtkIOFLUENTCFF-9.4-gd.lib
vtkIOGeometry-9.4-gd.lib
vtkIOHDF-9.4-gd.lib
vtkIOImage-9.4-gd.lib
vtkIOImport-9.4-gd.lib
vtkIOInfovis-9.4-gd.lib
vtkIOIOSS-9.4-gd.lib
vtkIOLegacy-9.4-gd.lib
vtkIOLSDyna-9.4-gd.lib
vtkIOMINC-9.4-gd.lib
vtkIOMotionFX-9.4-gd.lib
vtkIOMovie-9.4-gd.lib
vtkIONetCDF-9.4-gd.lib
vtkIOOggTheora-9.4-gd.lib
vtkIOParallel-9.4-gd.lib
vtkIOParallelXML-9.4-gd.lib
vtkIOPLY-9.4-gd.lib
vtkIOSegY-9.4-gd.lib
vtkIOSQL-9.4-gd.lib
vtkioss-9.4-gd.lib
vtkIOTecplotTable-9.4-gd.lib
vtkIOVeraOut-9.4-gd.lib
vtkIOVideo-9.4-gd.lib
vtkIOXML-9.4-gd.lib
vtkIOXMLParser-9.4-gd.lib
vtkjpeg-9.4-gd.lib
vtkjsoncpp-9.4-gd.lib
vtkkissfft-9.4-gd.lib
vtklibharu-9.4-gd.lib
vtklibproj-9.4-gd.lib
vtklibxml2-9.4-gd.lib
vtkloguru-9.4-gd.lib
vtklz4-9.4-gd.lib
vtklzma-9.4-gd.lib
vtkmetaio-9.4-gd.lib
vtknetcdf-9.4-gd.lib
vtkogg-9.4-gd.lib
vtkParallelCore-9.4-gd.lib
vtkParallelDIY-9.4-gd.lib
vtkpng-9.4-gd.lib
vtkpugixml-9.4-gd.lib
vtkRenderingAnnotation-9.4-gd.lib
vtkRenderingCellGrid-9.4-gd.lib
vtkRenderingContext2D-9.4-gd.lib
vtkRenderingContextOpenGL2-9.4-gd.lib
vtkRenderingCore-9.4-gd.lib
vtkRenderingFreeType-9.4-gd.lib
vtkRenderingGL2PSOpenGL2-9.4-gd.lib
vtkRenderingHyperTreeGrid-9.4-gd.lib
vtkRenderingImage-9.4-gd.lib
vtkRenderingLabel-9.4-gd.lib
vtkRenderingLICOpenGL2-9.4-gd.lib
vtkRenderingLOD-9.4-gd.lib
vtkRenderingOpenGL2-9.4-gd.lib
vtkRenderingSceneGraph-9.4-gd.lib
vtkRenderingUI-9.4-gd.lib
vtkRenderingVolume-9.4-gd.lib
vtkRenderingVolumeOpenGL2-9.4-gd.lib
vtkRenderingVtkJS-9.4-gd.lib
vtksqlite-9.4-gd.lib
vtksys-9.4-gd.lib
vtkTestingCore-9.4-gd.lib
vtkTestingRendering-9.4-gd.lib
vtktheora-9.4-gd.lib
vtktiff-9.4-gd.lib
vtktoken-9.4-gd.lib
vtkverdict-9.4-gd.lib
vtkViewsContext2D-9.4-gd.lib
vtkViewsCore-9.4-gd.lib
vtkViewsInfovis-9.4-gd.lib
vtkWrappingTools-9.4-gd.lib
vtkzlib-9.4-gd.lib
(4)release文件如下
vtkcgns-9.4.lib
vtkChartsCore-9.4.lib
vtkCommonColor-9.4.lib
vtkCommonComputationalGeometry-9.4.lib
vtkCommonCore-9.4.lib
vtkCommonDataModel-9.4.lib
vtkCommonExecutionModel-9.4.lib
vtkCommonMath-9.4.lib
vtkCommonMisc-9.4.lib
vtkCommonSystem-9.4.lib
vtkCommonTransforms-9.4.lib
vtkDICOMParser-9.4.lib
vtkDomainsChemistry-9.4.lib
vtkDomainsChemistryOpenGL2-9.4.lib
vtkdoubleconversion-9.4.lib
vtkexodusII-9.4.lib
vtkexpat-9.4.lib
vtkFiltersAMR-9.4.lib
vtkFiltersCellGrid-9.4.lib
vtkFiltersCore-9.4.lib
vtkFiltersExtraction-9.4.lib
vtkFiltersFlowPaths-9.4.lib
vtkFiltersGeneral-9.4.lib
vtkFiltersGeneric-9.4.lib
vtkFiltersGeometry-9.4.lib
vtkFiltersGeometryPreview-9.4.lib
vtkFiltersHybrid-9.4.lib
vtkFiltersHyperTree-9.4.lib
vtkFiltersImaging-9.4.lib
vtkFiltersModeling-9.4.lib
vtkFiltersParallel-9.4.lib
vtkFiltersParallelImaging-9.4.lib
vtkFiltersPoints-9.4.lib
vtkFiltersProgrammable-9.4.lib
vtkFiltersReduction-9.4.lib
vtkFiltersSelection-9.4.lib
vtkFiltersSMP-9.4.lib
vtkFiltersSources-9.4.lib
vtkFiltersStatistics-9.4.lib
vtkFiltersTemporal-9.4.lib
vtkFiltersTensor-9.4.lib
vtkFiltersTexture-9.4.lib
vtkFiltersTopology-9.4.lib
vtkFiltersVerdict-9.4.lib
vtkfmt-9.4.lib
vtkfreetype-9.4.lib
vtkGeovisCore-9.4.lib
vtkgl2ps-9.4.lib
vtkglad-9.4.lib
vtkhdf5-9.4.lib
vtkhdf5_hl-9.4.lib
vtkImagingColor-9.4.lib
vtkImagingCore-9.4.lib
vtkImagingFourier-9.4.lib
vtkImagingGeneral-9.4.lib
vtkImagingHybrid-9.4.lib
vtkImagingMath-9.4.lib
vtkImagingMorphological-9.4.lib
vtkImagingSources-9.4.lib
vtkImagingStatistics-9.4.lib
vtkImagingStencil-9.4.lib
vtkInfovisCore-9.4.lib
vtkInfovisLayout-9.4.lib
vtkInteractionImage-9.4.lib
vtkInteractionStyle-9.4.lib
vtkInteractionWidgets-9.4.lib
vtkIOAMR-9.4.lib
vtkIOAsynchronous-9.4.lib
vtkIOCellGrid-9.4.lib
vtkIOCesium3DTiles-9.4.lib
vtkIOCGNSReader-9.4.lib
vtkIOChemistry-9.4.lib
vtkIOCityGML-9.4.lib
vtkIOCONVERGECFD-9.4.lib
vtkIOCore-9.4.lib
vtkIOEngys-9.4.lib
vtkIOEnSight-9.4.lib
vtkIOERF-9.4.lib
vtkIOExodus-9.4.lib
vtkIOExport-9.4.lib
vtkIOExportGL2PS-9.4.lib
vtkIOExportPDF-9.4.lib
vtkIOFDS-9.4.lib
vtkIOFLUENTCFF-9.4.lib
vtkIOGeometry-9.4.lib
vtkIOHDF-9.4.lib
vtkIOImage-9.4.lib
vtkIOImport-9.4.lib
vtkIOInfovis-9.4.lib
vtkIOIOSS-9.4.lib
vtkIOLegacy-9.4.lib
vtkIOLSDyna-9.4.lib
vtkIOMINC-9.4.lib
vtkIOMotionFX-9.4.lib
vtkIOMovie-9.4.lib
vtkIONetCDF-9.4.lib
vtkIOOggTheora-9.4.lib
vtkIOParallel-9.4.lib
vtkIOParallelXML-9.4.lib
vtkIOPLY-9.4.lib
vtkIOSegY-9.4.lib
vtkIOSQL-9.4.lib
vtkioss-9.4.lib
vtkIOTecplotTable-9.4.lib
vtkIOVeraOut-9.4.lib
vtkIOVideo-9.4.lib
vtkIOXML-9.4.lib
vtkIOXMLParser-9.4.lib
vtkjpeg-9.4.lib
vtkjsoncpp-9.4.lib
vtkkissfft-9.4.lib
vtklibharu-9.4.lib
vtklibproj-9.4.lib
vtklibxml2-9.4.lib
vtkloguru-9.4.lib
vtklz4-9.4.lib
vtklzma-9.4.lib
vtkmetaio-9.4.lib
vtknetcdf-9.4.lib
vtkogg-9.4.lib
vtkParallelCore-9.4.lib
vtkParallelDIY-9.4.lib
vtkpng-9.4.lib
vtkpugixml-9.4.lib
vtkRenderingAnnotation-9.4.lib
vtkRenderingCellGrid-9.4.lib
vtkRenderingContext2D-9.4.lib
vtkRenderingContextOpenGL2-9.4.lib
vtkRenderingCore-9.4.lib
vtkRenderingFreeType-9.4.lib
vtkRenderingGL2PSOpenGL2-9.4.lib
vtkRenderingHyperTreeGrid-9.4.lib
vtkRenderingImage-9.4.lib
vtkRenderingLabel-9.4.lib
vtkRenderingLICOpenGL2-9.4.lib
vtkRenderingLOD-9.4.lib
vtkRenderingOpenGL2-9.4.lib
vtkRenderingSceneGraph-9.4.lib
vtkRenderingUI-9.4.lib
vtkRenderingVolume-9.4.lib
vtkRenderingVolumeOpenGL2-9.4.lib
vtkRenderingVtkJS-9.4.lib
vtksqlite-9.4.lib
vtksys-9.4.lib
vtkTestingCore-9.4.lib
vtkTestingRendering-9.4.lib
vtktheora-9.4.lib
vtktiff-9.4.lib
vtktoken-9.4.lib
vtkverdict-9.4.lib
vtkViewsContext2D-9.4.lib
vtkViewsCore-9.4.lib
vtkViewsInfovis-9.4.lib
vtkWrappingTools-9.4.lib
vtkzlib-9.4.lib
pcl_common.lib
pcl_features.lib
pcl_filters.lib
pcl_io.lib
pcl_io_ply.lib
pcl_kdtree.lib
pcl_keypoints.lib
pcl_ml.lib
pcl_octree.lib
pcl_outofcore.lib
pcl_people.lib
pcl_recognition.lib
pcl_registration.lib
pcl_sample_consensus.lib
pcl_search.lib
pcl_segmentation.lib
pcl_stereo.lib
pcl_surface.lib
pcl_tracking.lib
pcl_visualization.lib
7、将SDL检查设置为否
8、设置【预处理器定义】
内容如下:
BOOST_USE_WINDOWS_H
NOMINMAX
_CRT_SECURE_NO_DEPRECATE
9、启用增强指令集
设置为【高级矢量扩展(x86/x64)(/arch:AVX)】
注意:如果未启动增强指令集,则会出现如下报错:
#error: "Potential runtime error due to aligned malloc mismatch! You likely have to compile your code with AVX enabled or define EIGEN_MAX_ALIGN_BYTES=32 (to silence this message at your own risk, define PCL_SILENCE_MALLOC_WARNING=1)"
