可重复使用的VS-PCL1.10.1环境配置


前言

对于使用VS-C++进行点云处理的小伙伴初期应该都会用到PCL点云库,但有个问题就是需要再VS中对PCL的系统属性进行配置,否则我们再 #include<pcl/****> 阶段就会提示我们找不到相关的文件。
在这里插入图片描述
但是这个pcl配置的过程就比较繁琐,对于第一次使用vs + pcl的小伙伴来说可能就容易出现配置错误。
其次,如果说我们是采用AlgorithmParC >> 右键 >> 属性的方式进行pcl属性配置,那么当我们重新新建一个pcl点云项目的时候就还需要再次对项目的属性进行配置。

解决方法:本文提供一种只需配置一次便可以重复(永久)使用的方法,就是创建一个项目属性表。例如我创建的 E_PCL-1.10.1。

在这里插入图片描述

一、系统配置环境

配置环境:VS2019、PCL1.10.0
我们再使用的时候会选择配置版本,比如release/debug 86/64,我所给的配置属性环境是:release 64,同样的debug版本的配置也是同样的方法,两者的区别我会在下文中提到。
在这里插入图片描述

二、vs2019+pcl1.10.1属性配置步骤

A.配置前提

首先配置pcl属性之前需要安装好你所需版本的pcl库,注意:我们pcl安装的openNi要安装到PCL安装目录的指定目录下,默认条件下会安装再C盘目录下,如果进入该目录没有如下信息,只需双击箭头所指的文件移除原来的openNI,然后再次重新安装OpenNi到该目录即可。
在这里插入图片描述

B.系统环境变量配置

然后查看电脑的系统变量,配置pcl中相关目录到环境变量中
在这里插入图片描述

C.属性表配置

1、 在VS AlgorithmParC(我自己创建的项目)项目中执行:属性管理器>>Release X64>>添加新项目属性表创建一个属于你自己的PCL属性文件。
在这里插入图片描述

2、右键点击新建的属性文件>>属性进入属性页面
在这里插入图片描述
3、选择:VC++ 目录 对包含目录和库目录进行配置
首先配置包含目录,点击后侧下拉列表>>编辑 进入如下页面。并将如下信息一次填入箭头所指区域中,注意修改如下信息中的安装盘目录(我的是装在E盘),再点击确定。
E:\PCL 1.10.1\include\pcl-1.10
E:\PCL 1.10.1\3rdParty\VTK\include\vtk-8.2
E:\PCL 1.10.1\3rdParty\Boost\include\boost-1_72
E:\PCL 1.10.1\3rdParty\Eigen\eigen3
E:\PCL 1.10.1\3rdParty\FLANN\include
E:\PCL 1.10.1\3rdParty\OpenNI2\Include
E:\PCL 1.10.1\3rdParty\Qhull\include
在这里插入图片描述
然后进入库目录**,点击后侧下拉列表>>编辑 进入如下页面。并将如下信息一次填入箭头所指区域中,再点击确定。

E:\PCL 1.10.1\lib
E:\PCL 1.10.1\3rdParty\Boost\lib
E:\PCL 1.10.1\3rdParty\FLANN\lib
E:\PCL 1.10.1\3rdParty\OpenNI2\Lib
E:\PCL 1.10.1\3rdParty\Qhull\lib
E:\PCL 1.10.1\3rdParty\VTK\lib
在这里插入图片描述
4、选择:连接器>>输入,然后点击附加依赖项>>编辑进入如下界面,并将如下信息填入蓝色箭头区域。
在这里插入图片描述

OpenNI2.lib
vtkChartsCore-8.2.lib
vtkCommonColor-8.2.lib
vtkCommonComputationalGeometry-8.2.lib
vtkCommonCore-8.2.lib
vtkCommonDataModel-8.2.lib
vtkCommonExecutionModel-8.2.lib
vtkCommonMath-8.2.lib
vtkCommonMisc-8.2.lib
vtkCommonSystem-8.2.lib
vtkCommonTransforms-8.2.lib
vtkDICOMParser-8.2.lib
vtkDomainsChemistry-8.2.lib
vtkDomainsChemistryOpenGL2-8.2.lib
vtkdoubleconversion-8.2.lib
vtkexodusII-8.2.lib
vtkexpat-8.2.lib
vtkFiltersAMR-8.2.lib
vtkFiltersCore-8.2.lib
vtkFiltersExtraction-8.2.lib
vtkFiltersFlowPaths-8.2.lib
vtkFiltersGeneral-8.2.lib
vtkFiltersGeneric-8.2.lib
vtkFiltersGeometry-8.2.lib
vtkFiltersHybrid-8.2.lib
vtkFiltersHyperTree-8.2.lib
vtkFiltersImaging-8.2.lib
vtkFiltersModeling-8.2.lib
vtkFiltersParallel-8.2.lib
vtkFiltersParallelImaging-8.2.lib
vtkFiltersPoints-8.2.lib
vtkFiltersProgrammable-8.2.lib
vtkFiltersSelection-8.2.lib
vtkFiltersSMP-8.2.lib
vtkFiltersSources-8.2.lib
vtkFiltersStatistics-8.2.lib
vtkFiltersTexture-8.2.lib
vtkFiltersTopology-8.2.lib
vtkFiltersVerdict-8.2.lib
vtkfreetype-8.2.lib
vtkGeovisCore-8.2.lib
vtkgl2ps-8.2.lib
vtkglew-8.2.lib
vtkGUISupportMFC-8.2.lib
vtkhdf5-8.2.lib
vtkhdf5_hl-8.2.lib
vtkImagingColor-8.2.lib
vtkImagingCore-8.2.lib
vtkImagingFourier-8.2.lib
vtkImagingGeneral-8.2.lib
vtkImagingHybrid-8.2.lib
vtkImagingMath-8.2.lib
vtkImagingMorphological-8.2.lib
vtkImagingSources-8.2.lib
vtkImagingStatistics-8.2.lib
vtkImagingStencil-8.2.lib
vtkInfovisCore-8.2.lib
vtkInfovisLayout-8.2.lib
vtkInteractionImage-8.2.lib
vtkInteractionStyle-8.2.lib
vtkInteractionWidgets-8.2.lib
vtkIOAMR-8.2.lib
vtkIOAsynchronous-8.2.lib
vtkIOCityGML-8.2.lib
vtkIOCore-8.2.lib
vtkIOEnSight-8.2.lib
vtkIOExodus-8.2.lib
vtkIOExport-8.2.lib
vtkIOExportOpenGL2-8.2.lib
vtkIOExportPDF-8.2.lib
vtkIOGeometry-8.2.lib
vtkIOImage-8.2.lib
vtkIOImport-8.2.lib
vtkIOInfovis-8.2.lib
vtkIOLegacy-8.2.lib
vtkIOLSDyna-8.2.lib
vtkIOMINC-8.2.lib
vtkIOMovie-8.2.lib
vtkIONetCDF-8.2.lib
vtkIOParallel-8.2.lib
vtkIOParallelXML-8.2.lib
vtkIOPLY-8.2.lib
vtkIOSegY-8.2.lib
vtkIOSQL-8.2.lib
vtkIOTecplotTable-8.2.lib
vtkIOVeraOut-8.2.lib
vtkIOVideo-8.2.lib
vtkIOXML-8.2.lib
vtkIOXMLParser-8.2.lib
vtkjpeg-8.2.lib
vtkjsoncpp-8.2.lib
vtklibharu-8.2.lib
vtklibxml2-8.2.lib
vtklz4-8.2.lib
vtklzma-8.2.lib
vtkmetaio-8.2.lib
vtkNetCDF-8.2.lib
vtkogg-8.2.lib
vtkParallelCore-8.2.lib
vtkpng-8.2.lib
vtkproj-8.2.lib
vtkpugixml-8.2.lib
vtkRenderingAnnotation-8.2.lib
vtkRenderingContext2D-8.2.lib
vtkRenderingContextOpenGL2-8.2.lib
vtkRenderingCore-8.2.lib
vtkRenderingExternal-8.2.lib
vtkRenderingFreeType-8.2.lib
vtkRenderingGL2PSOpenGL2-8.2.lib
vtkRenderingImage-8.2.lib
vtkRenderingLabel-8.2.lib
vtkRenderingLOD-8.2.lib
vtkRenderingOpenGL2-8.2.lib
vtkRenderingVolume-8.2.lib
vtkRenderingVolumeOpenGL2-8.2.lib
vtksqlite-8.2.lib
vtksys-8.2.lib
vtktheora-8.2.lib
vtktiff-8.2.lib
vtkverdict-8.2.lib
vtkViewsContext2D-8.2.lib
vtkViewsCore-8.2.lib
vtkViewsInfovis-8.2.lib
vtkzlib-8.2.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
libboost_atomic-vc142-mt-x64-1_72.lib
libboost_bzip2-vc142-mt-x64-1_72.lib
libboost_chrono-vc142-mt-x64-1_72.lib
libboost_container-vc142-mt-x64-1_72.lib
libboost_context-vc142-mt-x64-1_72.lib
libboost_contract-vc142-mt-x64-1_72.lib
libboost_coroutine-vc142-mt-x64-1_72.lib
libboost_date_time-vc142-mt-x64-1_72.lib
libboost_exception-vc142-mt-x64-1_72.lib
libboost_fiber-vc142-mt-x64-1_72.lib
libboost_filesystem-vc142-mt-x64-1_72.lib
libboost_graph_parallel-vc142-mt-x64-1_72.lib
libboost_graph-vc142-mt-x64-1_72.lib
libboost_iostreams-vc142-mt-x64-1_72.lib
libboost_locale-vc142-mt-x64-1_72.lib
libboost_log_setup-vc142-mt-x64-1_72.lib
libboost_log-vc142-mt-x64-1_72.lib
libboost_math_c99f-vc142-mt-x64-1_72.lib
libboost_math_c99l-vc142-mt-x64-1_72.lib
libboost_math_c99-vc142-mt-x64-1_72.lib
libboost_math_tr1f-vc142-mt-x64-1_72.lib
libboost_math_tr1l-vc142-mt-x64-1_72.lib
libboost_math_tr1-vc142-mt-x64-1_72.lib
libboost_mpi-vc142-mt-x64-1_72.lib
libboost_numpy38-vc142-mt-x64-1_72.lib
libboost_prg_exec_monitor-vc142-mt-x64-1_72.lib
libboost_program_options-vc142-mt-x64-1_72.lib
libboost_python38-vc142-mt-x64-1_72.lib
libboost_random-vc142-mt-x64-1_72.lib
libboost_regex-vc142-mt-x64-1_72.lib
libboost_serialization-vc142-mt-x64-1_72.lib
libboost_stacktrace_noop-vc142-mt-x64-1_72.lib
libboost_stacktrace_windbg_cached-vc142-mt-x64-1_72.lib
libboost_stacktrace_windbg-vc142-mt-x64-1_72.lib
libboost_system-vc142-mt-x64-1_72.lib
libboost_test_exec_monitor-vc142-mt-x64-1_72.lib
libboost_thread-vc142-mt-x64-1_72.lib
libboost_timer-vc142-mt-x64-1_72.lib
libboost_type_erasure-vc142-mt-x64-1_72.lib
libboost_unit_test_framework-vc142-mt-x64-1_72.lib
libboost_wave-vc142-mt-x64-1_72.lib
libboost_wserialization-vc142-mt-x64-1_72.lib
libboost_zlib-vc142-mt-x64-1_72.lib

注意:如果你配置的是dubug版本,那么填入的信息就需要进行调整,将填入的信息改为debug版本的名字,release和debug版本的区别如下:名字后面带d的是dubug版本,不带d的是release版本。
在这里插入图片描述
注意:我们以上填入的 ***.lib文件是针对PCL1.10.1版本的,不同版本之间会有差异,所用为了保险起见,最好是根据自己的版本信息重新提取所有.lib文件的文件名,避免配置后出现找不到对应文件的现象

如果不想一个一个的去查找这些文件,就可以使用我提供的工具一键提取

然后点击C/C++—>所有选项—>SDL检查改为否。
最后点击预处理器定义将如下信息填入
_CRT_SECURE_NO_WARNINGS
BOOST_ALL_NO_LIB
BOOST_USE_WINDOWS_H
NOMINMAX
_SCL_SECURE_NO_WARNINGS
_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING
在这里插入图片描述

到该阶段:我们的PCL属性文件就算配置完了

D、PCL属性文件重复使用

上面我们配置的属性文件就可以重复使用了,使用过程:
新建一个项目》》属性管理器》》release 64 》右键》添加现有属性表》然后将我们刚刚创建的属性文件添加进来即可
在这里插入图片描述

E、不做配置直接使用方法

如果你不想进行以上属性表配置配置的过程,那你就下载和我相同的版本,并且将pcl1.10.1的文件安装到E/D盘目录下,然后使用我提供的配置文件即可,具体操作按照 PCL属性文件重复使用的方法进行。
文件下载地址:
资源1:https://download.csdn.net/download/qq_43627520/87384474
资源2:https://download.csdn.net/download/qq_43627520/87384484
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43627520/article/details/128683864