jjzjj

Windows + VS2022超详细点云库(PCL)配置

爱钻研的小铭 2024-06-02 原文

0. 参考

1. 简述

PCL(Point Cloud Library)是一个开源的点云库,是点云算法集成度最高的库。本文将以Windows 10和Visual Studio 2022开发环境为例,讲解如何配置点云库。

2. 环境

  • Windows
  • Visual Studio

3. 准备工作

3.1 安装Visual Studio

教程中使用的是 Visual Studio 2022 版本,具体的安装方式可从其他网站中搜索到,在此不做赘述。

3.2 安装PCL 1.12

首先去 https://github.com/PointCloudLibrary/pcl/releases 下载点云库的安装包,我们需要的是AllInOne和pdb两个包。我下载的是1.12.0版本,如下图所示。

在这里需要根据自己机器的情况下载相应的版本(操作系统的位数,以及Visual Studio的版本)。我这里选择PCL-1.12.0-AllInOne-msvc2019-win64.exepcl-1.12.0-pdb-msvc2019-win64.zip两个文件。

下载结束之后,运行我们下载得到的PCL-1.12.0-AllInOne-msvc2019-win64.exe文件进行安装。下面几幅图显示出了几个必要的步骤,未做说明的步骤直接下一步或者根据自己的喜好配置即可。




接下来点击安装便可以开始漫长的安装过程。

一段时间之后,会弹出来一个OpenNI2的安装窗口,此时直接一路下一步就好,但是一定要记住自己设置的安装路径。由于点云在安装的过程中会把所有的第三方库全部安装在点云安装目录下的3rdparty文件夹里。因此,为了保持文件夹的整洁,我这里也把OpenNI2放在3rdparty文件夹里,即E:\PCL 1.12.0\3rdParty\OpenNI2

OpenNI2安装结束之后就完成了点云库的完整安装,安装目录下的样子和3rdparty文件夹下的样子如下图:


可以看到,我把所有的第三方库全部安装到了3rdparty文件夹中。

解压pcl-1.12.0-pdb-msvc2019-win64.zip,将得到的pdb文件全部复制到:E:\PCL 1.12.0\bin中。

3.3 环境变量配置

环境变量配置
点云库安装完成之后,还有一个比较重要的步骤,就是配置Windows的环境变量。

右键点击此电脑(我的电脑,计算机,这台电脑等名字),选择属性,接着点击左侧的高级系统设置,然后选择高级选项卡,点击下面的环境变量…按钮,此时便打开了环境变量的配置窗口。

此时,我们可以看到PCL的根目录以及OpenNI2的目录已经添加到了系统变量中。


注意,由于我们在安装完毕后把OpenNI2放在3rdparty文件夹里,因此我们需要将OPENNI2_REDIST64的系统路径修改为E:\PCL 1.12.0\3rdParty\OpenNI2,我这里已经修改过来了。改之前的路径是在C盘

然后,我们双击系统变量中的Path,再将以下的目录添加到Path中(注意最后一个OpenNI2的路径,要和自己刚刚安装的路径一样才行):

%PCL_ROOT%\bin
%PCL_ROOT%\3rdParty\VTK\bin
%PCL_ROOT%\3rdParty\FLANN\bin
%OPENNI2_REDIST64%
%PCL_ROOT%\3rdParty\Qhull\bin
%PCL_ROOT%\3rdParty\OpenNI2\Tools

以上步骤搞定之后,重启电脑来应用环境变量。这一步我没有做,也可以生效。

3.4 Visual Studio开发环境配置

Visual Studio提供了两种编译模式:Debug和Release。Debug模式下,生成的应用程序中会插入许多的调试指令,因此调试起来及其方便,但是大幅度降低了程序的运行速度;Release模式便会提高程序的速度,但是调试相对较困难一些。本教程将对两种模式分别进行配置,适应不同的需求。

首先打开Visual Studio,然后新建一个C++工程。具体创建过程在此不做赘述。

接下来,配置工程的属性管理器。

我们先来配置Debug模式。点击该窗口左侧的VC++ 目录,然后点击右侧的包含目录右侧的下拉菜单,选择编辑…,将以下目录填入窗口中:

  • E:\PCL 1.12.0\3rdParty\Boost\include\boost-1_76
  • E:\PCL 1.12.0\3rdParty\Eigen\eigen3
  • E:\PCL 1.12.0\3rdParty\FLANN\include
  • E:\PCL 1.12.0\3rdParty\Qhull\include
  • E:\PCL 1.12.0\3rdParty\VTK\include\vtk-9.0
  • E:\PCL 1.12.0\include\pcl-1.12
  • E:\PCL 1.12.0\3rdParty\OpenNI2\Include

注意:这里的E:\PCL 1.12.0是刚刚安装点云库的路径,根据刚刚安装点云的路径进行修改。同时还要注意高亮字体的版本问题。配置好之后点击确定即可。

然后点击右侧的库目录右侧的下拉菜单,选择编辑…,将以下目录填入窗口中:

  • E:\PCL 1.12.0\lib
  • E:\PCL 1.12.0\3rdParty\Boost\lib
  • E:\PCL 1.12.0\3rdParty\FLANN\lib
  • E:\PCL 1.12.0\3rdParty\Qhull\lib
  • E:\PCL 1.12.0\3rdParty\VTK\lib
  • E:\PCL 1.12.0\3rdParty\OpenNI2\Lib

同样需要注意路径问题,配置好之后点击确定即可。

然后点击属性页中的C/C++下的预处理器,点击右侧的预处理器定义右侧的下拉菜单,选择编辑…,添加如下两条定义:

_SCL_SECURE_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS

然后再点击预编译头,将右侧的预编译头设置为不使用预编译头。这个设置可以依据自己的习惯决定,可以省略。

接着点击属性页中的链接器下的输入,点击右侧的附加依赖项右侧的下拉菜单,选择编辑…,将pcl和3rdParty相关lib文件填写到窗口中:

pcl_common.lib
pcl_commond.lib
pcl_features.lib
pcl_featuresd.lib
pcl_filters.lib
pcl_filtersd.lib
pcl_io.lib
pcl_iod.lib
pcl_io_ply.lib
pcl_io_plyd.lib
pcl_kdtree.lib
pcl_kdtreed.lib
pcl_keypoints.lib
pcl_keypointsd.lib
pcl_ml.lib
pcl_mld.lib
pcl_octree.lib
pcl_octreed.lib
pcl_outofcore.lib
pcl_outofcored.lib
pcl_people.lib
pcl_peopled.lib
pcl_recognition.lib
pcl_recognitiond.lib
pcl_registration.lib
pcl_registrationd.lib
pcl_sample_consensus.lib
pcl_sample_consensusd.lib
pcl_search.lib
pcl_searchd.lib
pcl_segmentation.lib
pcl_segmentationd.lib
pcl_stereo.lib
pcl_stereod.lib
pcl_surface.lib
pcl_surfaced.lib
pcl_tracking.lib
pcl_trackingd.lib
pcl_visualization.lib
pcl_visualizationd.lib
libboost_atomic-vc142-mt-gd-x64-1_76.lib
libboost_atomic-vc142-mt-x64-1_76.lib
libboost_bzip2-vc142-mt-gd-x64-1_76.lib
libboost_bzip2-vc142-mt-x64-1_76.lib
libboost_chrono-vc142-mt-gd-x64-1_76.lib
libboost_chrono-vc142-mt-x64-1_76.lib
libboost_container-vc142-mt-gd-x64-1_76.lib
libboost_container-vc142-mt-x64-1_76.lib
libboost_context-vc142-mt-gd-x64-1_76.lib
libboost_context-vc142-mt-x64-1_76.lib
libboost_contract-vc142-mt-gd-x64-1_76.lib
libboost_contract-vc142-mt-x64-1_76.lib
libboost_coroutine-vc142-mt-gd-x64-1_76.lib
libboost_coroutine-vc142-mt-x64-1_76.lib
libboost_date_time-vc142-mt-gd-x64-1_76.lib
libboost_date_time-vc142-mt-x64-1_76.lib
libboost_exception-vc142-mt-gd-x64-1_76.lib
libboost_exception-vc142-mt-x64-1_76.lib
libboost_fiber-vc142-mt-gd-x64-1_76.lib
libboost_fiber-vc142-mt-x64-1_76.lib
libboost_filesystem-vc142-mt-gd-x64-1_76.lib
libboost_filesystem-vc142-mt-x64-1_76.lib
libboost_graph-vc142-mt-gd-x64-1_76.lib
libboost_graph-vc142-mt-x64-1_76.lib
libboost_graph_parallel-vc142-mt-gd-x64-1_76.lib
libboost_graph_parallel-vc142-mt-x64-1_76.lib
libboost_iostreams-vc142-mt-gd-x64-1_76.lib
libboost_iostreams-vc142-mt-x64-1_76.lib
libboost_json-vc142-mt-gd-x64-1_76.lib
libboost_json-vc142-mt-x64-1_76.lib
libboost_locale-vc142-mt-gd-x64-1_76.lib
libboost_locale-vc142-mt-x64-1_76.lib
libboost_log-vc142-mt-gd-x64-1_76.lib
libboost_log-vc142-mt-x64-1_76.lib
libboost_log_setup-vc142-mt-gd-x64-1_76.lib
libboost_log_setup-vc142-mt-x64-1_76.lib
libboost_math_c99-vc142-mt-gd-x64-1_76.lib
libboost_math_c99-vc142-mt-x64-1_76.lib
libboost_math_c99f-vc142-mt-gd-x64-1_76.lib
libboost_math_c99f-vc142-mt-x64-1_76.lib
libboost_math_c99l-vc142-mt-gd-x64-1_76.lib
libboost_math_c99l-vc142-mt-x64-1_76.lib
libboost_math_tr1-vc142-mt-gd-x64-1_76.lib
libboost_math_tr1-vc142-mt-x64-1_76.lib
libboost_math_tr1f-vc142-mt-gd-x64-1_76.lib
libboost_math_tr1f-vc142-mt-x64-1_76.lib
libboost_math_tr1l-vc142-mt-gd-x64-1_76.lib
libboost_math_tr1l-vc142-mt-x64-1_76.lib
libboost_mpi-vc142-mt-gd-x64-1_76.lib
libboost_mpi-vc142-mt-x64-1_76.lib
libboost_nowide-vc142-mt-gd-x64-1_76.lib
libboost_nowide-vc142-mt-x64-1_76.lib
libboost_numpy38-vc142-mt-gd-x64-1_76.lib
libboost_numpy38-vc142-mt-x64-1_76.lib
libboost_prg_exec_monitor-vc142-mt-gd-x64-1_76.lib
libboost_prg_exec_monitor-vc142-mt-x64-1_76.lib
libboost_program_options-vc142-mt-gd-x64-1_76.lib
libboost_program_options-vc142-mt-x64-1_76.lib
libboost_python38-vc142-mt-gd-x64-1_76.lib
libboost_python38-vc142-mt-x64-1_76.lib
libboost_random-vc142-mt-gd-x64-1_76.lib
libboost_random-vc142-mt-x64-1_76.lib
libboost_regex-vc142-mt-gd-x64-1_76.lib
libboost_regex-vc142-mt-x64-1_76.lib
libboost_serialization-vc142-mt-gd-x64-1_76.lib
libboost_serialization-vc142-mt-x64-1_76.lib
libboost_stacktrace_noop-vc142-mt-gd-x64-1_76.lib
libboost_stacktrace_noop-vc142-mt-x64-1_76.lib
libboost_stacktrace_windbg-vc142-mt-gd-x64-1_76.lib
libboost_stacktrace_windbg-vc142-mt-x64-1_76.lib
libboost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_76.lib
libboost_stacktrace_windbg_cached-vc142-mt-x64-1_76.lib
libboost_system-vc142-mt-gd-x64-1_76.lib
libboost_system-vc142-mt-x64-1_76.lib
libboost_test_exec_monitor-vc142-mt-gd-x64-1_76.lib
libboost_test_exec_monitor-vc142-mt-x64-1_76.lib
libboost_thread-vc142-mt-gd-x64-1_76.lib
libboost_thread-vc142-mt-x64-1_76.lib
libboost_timer-vc142-mt-gd-x64-1_76.lib
libboost_timer-vc142-mt-x64-1_76.lib
libboost_type_erasure-vc142-mt-gd-x64-1_76.lib
libboost_type_erasure-vc142-mt-x64-1_76.lib
libboost_unit_test_framework-vc142-mt-gd-x64-1_76.lib
libboost_unit_test_framework-vc142-mt-x64-1_76.lib
libboost_wave-vc142-mt-gd-x64-1_76.lib
libboost_wave-vc142-mt-x64-1_76.lib
libboost_wserialization-vc142-mt-gd-x64-1_76.lib
libboost_wserialization-vc142-mt-x64-1_76.lib
libboost_zlib-vc142-mt-gd-x64-1_76.lib
libboost_zlib-vc142-mt-x64-1_76.lib
flann-gd.lib
flann.lib
flann_cpp-gd.lib
flann_cpp.lib
flann_cpp_s-gd.lib
flann_cpp_s.lib
flann_s-gd.lib
flann_s.lib
OpenNI2.lib
qhullcpp.lib
qhullcpp_d.lib
qhullstatic.lib
qhullstatic_d.lib
qhullstatic_r.lib
qhullstatic_rd.lib
qhull_r.lib
qhull_rd.lib
vtkChartsCore-9.0.lib
vtkChartsCore-9.0d.lib
vtkCommonColor-9.0.lib
vtkCommonColor-9.0d.lib
vtkCommonComputationalGeometry-9.0.lib
vtkCommonComputationalGeometry-9.0d.lib
vtkCommonCore-9.0.lib
vtkCommonCore-9.0d.lib
vtkCommonDataModel-9.0.lib
vtkCommonDataModel-9.0d.lib
vtkCommonExecutionModel-9.0.lib
vtkCommonExecutionModel-9.0d.lib
vtkCommonMath-9.0.lib
vtkCommonMath-9.0d.lib
vtkCommonMisc-9.0.lib
vtkCommonMisc-9.0d.lib
vtkCommonSystem-9.0.lib
vtkCommonSystem-9.0d.lib
vtkCommonTransforms-9.0.lib
vtkCommonTransforms-9.0d.lib
vtkDICOMParser-9.0.lib
vtkDICOMParser-9.0d.lib
vtkDomainsChemistry-9.0.lib
vtkDomainsChemistry-9.0d.lib
vtkDomainsChemistryOpenGL2-9.0.lib
vtkDomainsChemistryOpenGL2-9.0d.lib
vtkdoubleconversion-9.0.lib
vtkdoubleconversion-9.0d.lib
vtkexodusII-9.0.lib
vtkexodusII-9.0d.lib
vtkexpat-9.0.lib
vtkexpat-9.0d.lib
vtkFiltersAMR-9.0.lib
vtkFiltersAMR-9.0d.lib
vtkFiltersCore-9.0.lib
vtkFiltersCore-9.0d.lib
vtkFiltersExtraction-9.0.lib
vtkFiltersExtraction-9.0d.lib
vtkFiltersFlowPaths-9.0.lib
vtkFiltersFlowPaths-9.0d.lib
vtkFiltersGeneral-9.0.lib
vtkFiltersGeneral-9.0d.lib
vtkFiltersGeneric-9.0.lib
vtkFiltersGeneric-9.0d.lib
vtkFiltersGeometry-9.0.lib
vtkFiltersGeometry-9.0d.lib
vtkFiltersHybrid-9.0.lib
vtkFiltersHybrid-9.0d.lib
vtkFiltersHyperTree-9.0.lib
vtkFiltersHyperTree-9.0d.lib
vtkFiltersImaging-9.0.lib
vtkFiltersImaging-9.0d.lib
vtkFiltersModeling-9.0.lib
vtkFiltersModeling-9.0d.lib
vtkFiltersParallel-9.0.lib
vtkFiltersParallel-9.0d.lib
vtkFiltersParallelImaging-9.0.lib
vtkFiltersParallelImaging-9.0d.lib
vtkFiltersPoints-9.0.lib
vtkFiltersPoints-9.0d.lib
vtkFiltersProgrammable-9.0.lib
vtkFiltersProgrammable-9.0d.lib
vtkFiltersSelection-9.0.lib
vtkFiltersSelection-9.0d.lib
vtkFiltersSMP-9.0.lib
vtkFiltersSMP-9.0d.lib
vtkFiltersSources-9.0.lib
vtkFiltersSources-9.0d.lib
vtkFiltersStatistics-9.0.lib
vtkFiltersStatistics-9.0d.lib
vtkFiltersTexture-9.0.lib
vtkFiltersTexture-9.0d.lib
vtkFiltersTopology-9.0.lib
vtkFiltersTopology-9.0d.lib
vtkFiltersVerdict-9.0.lib
vtkFiltersVerdict-9.0d.lib
vtkfreetype-9.0.lib
vtkfreetype-9.0d.lib
vtkGeovisCore-9.0.lib
vtkGeovisCore-9.0d.lib
vtkgl2ps-9.0.lib
vtkgl2ps-9.0d.lib
vtkglew-9.0.lib
vtkglew-9.0d.lib
vtkhdf5-9.0.lib
vtkhdf5-9.0d.lib
vtkhdf5_hl-9.0.lib
vtkhdf5_hl-9.0d.lib
vtkImagingColor-9.0.lib
vtkImagingColor-9.0d.lib
vtkImagingCore-9.0.lib
vtkImagingCore-9.0d.lib
vtkImagingFourier-9.0.lib
vtkImagingFourier-9.0d.lib
vtkImagingGeneral-9.0.lib
vtkImagingGeneral-9.0d.lib
vtkImagingHybrid-9.0.lib
vtkImagingHybrid-9.0d.lib
vtkImagingMath-9.0.lib
vtkImagingMath-9.0d.lib
vtkImagingMorphological-9.0.lib
vtkImagingMorphological-9.0d.lib
vtkImagingSources-9.0.lib
vtkImagingSources-9.0d.lib
vtkImagingStatistics-9.0.lib
vtkImagingStatistics-9.0d.lib
vtkImagingStencil-9.0.lib
vtkImagingStencil-9.0d.lib
vtkInfovisCore-9.0.lib
vtkInfovisCore-9.0d.lib
vtkInfovisLayout-9.0.lib
vtkInfovisLayout-9.0d.lib
vtkInteractionImage-9.0.lib
vtkInteractionImage-9.0d.lib
vtkInteractionStyle-9.0.lib
vtkInteractionStyle-9.0d.lib
vtkInteractionWidgets-9.0.lib
vtkInteractionWidgets-9.0d.lib
vtkIOAMR-9.0.lib
vtkIOAMR-9.0d.lib
vtkIOAsynchronous-9.0.lib
vtkIOAsynchronous-9.0d.lib
vtkIOCityGML-9.0.lib
vtkIOCityGML-9.0d.lib
vtkIOCore-9.0.lib
vtkIOCore-9.0d.lib
vtkIOEnSight-9.0.lib
vtkIOEnSight-9.0d.lib
vtkIOExodus-9.0.lib
vtkIOExodus-9.0d.lib
vtkIOExport-9.0.lib
vtkIOExport-9.0d.lib
vtkIOExportGL2PS-9.0.lib
vtkIOExportGL2PS-9.0d.lib
vtkIOExportPDF-9.0.lib
vtkIOExportPDF-9.0d.lib
vtkIOGeometry-9.0.lib
vtkIOGeometry-9.0d.lib
vtkIOImage-9.0.lib
vtkIOImage-9.0d.lib
vtkIOImport-9.0.lib
vtkIOImport-9.0d.lib
vtkIOInfovis-9.0.lib
vtkIOInfovis-9.0d.lib
vtkIOLegacy-9.0.lib
vtkIOLegacy-9.0d.lib
vtkIOLSDyna-9.0.lib
vtkIOLSDyna-9.0d.lib
vtkIOMINC-9.0.lib
vtkIOMINC-9.0d.lib
vtkIOMotionFX-9.0.lib
vtkIOMotionFX-9.0d.lib
vtkIOMovie-9.0.lib
vtkIOMovie-9.0d.lib
vtkIONetCDF-9.0.lib
vtkIONetCDF-9.0d.lib
vtkIOOggTheora-9.0.lib
vtkIOOggTheora-9.0d.lib
vtkIOParallel-9.0.lib
vtkIOParallel-9.0d.lib
vtkIOParallelXML-9.0.lib
vtkIOParallelXML-9.0d.lib
vtkIOPLY-9.0.lib
vtkIOPLY-9.0d.lib
vtkIOSegY-9.0.lib
vtkIOSegY-9.0d.lib
vtkIOSQL-9.0.lib
vtkIOSQL-9.0d.lib
vtkIOTecplotTable-9.0.lib
vtkIOTecplotTable-9.0d.lib
vtkIOVeraOut-9.0.lib
vtkIOVeraOut-9.0d.lib
vtkIOVideo-9.0.lib
vtkIOVideo-9.0d.lib
vtkIOXML-9.0.lib
vtkIOXML-9.0d.lib
vtkIOXMLParser-9.0.lib
vtkIOXMLParser-9.0d.lib
vtkjpeg-9.0.lib
vtkjpeg-9.0d.lib
vtkjsoncpp-9.0.lib
vtkjsoncpp-9.0d.lib
vtklibharu-9.0.lib
vtklibharu-9.0d.lib
vtklibproj-9.0.lib
vtklibproj-9.0d.lib
vtklibxml2-9.0.lib
vtklibxml2-9.0d.lib
vtkloguru-9.0.lib
vtkloguru-9.0d.lib
vtklz4-9.0.lib
vtklz4-9.0d.lib
vtklzma-9.0.lib
vtklzma-9.0d.lib
vtkmetaio-9.0.lib
vtkmetaio-9.0d.lib
vtknetcdf-9.0.lib
vtknetcdf-9.0d.lib
vtkogg-9.0.lib
vtkogg-9.0d.lib
vtkParallelCore-9.0.lib
vtkParallelCore-9.0d.lib
vtkParallelDIY-9.0.lib
vtkParallelDIY-9.0d.lib
vtkpng-9.0.lib
vtkpng-9.0d.lib
vtkpugixml-9.0.lib
vtkpugixml-9.0d.lib
vtkRenderingAnnotation-9.0.lib
vtkRenderingAnnotation-9.0d.lib
vtkRenderingContext2D-9.0.lib
vtkRenderingContext2D-9.0d.lib
vtkRenderingContextOpenGL2-9.0.lib
vtkRenderingContextOpenGL2-9.0d.lib
vtkRenderingCore-9.0.lib
vtkRenderingCore-9.0d.lib
vtkRenderingFreeType-9.0.lib
vtkRenderingFreeType-9.0d.lib
vtkRenderingGL2PSOpenGL2-9.0.lib
vtkRenderingGL2PSOpenGL2-9.0d.lib
vtkRenderingImage-9.0.lib
vtkRenderingImage-9.0d.lib
vtkRenderingLabel-9.0.lib
vtkRenderingLabel-9.0d.lib
vtkRenderingLOD-9.0.lib
vtkRenderingLOD-9.0d.lib
vtkRenderingOpenGL2-9.0.lib
vtkRenderingOpenGL2-9.0d.lib
vtkRenderingSceneGraph-9.0.lib
vtkRenderingSceneGraph-9.0d.lib
vtkRenderingUI-9.0.lib
vtkRenderingUI-9.0d.lib
vtkRenderingVolume-9.0.lib
vtkRenderingVolume-9.0d.lib
vtkRenderingVolumeOpenGL2-9.0.lib
vtkRenderingVolumeOpenGL2-9.0d.lib
vtkRenderingVtkJS-9.0.lib
vtkRenderingVtkJS-9.0d.lib
vtksqlite-9.0.lib
vtksqlite-9.0d.lib
vtksys-9.0.lib
vtksys-9.0d.lib
vtkTestingRendering-9.0.lib
vtkTestingRendering-9.0d.lib
vtktheora-9.0.lib
vtktheora-9.0d.lib
vtktiff-9.0.lib
vtktiff-9.0d.lib
vtkverdict-9.0.lib
vtkverdict-9.0d.lib
vtkViewsContext2D-9.0.lib
vtkViewsContext2D-9.0d.lib
vtkViewsCore-9.0.lib
vtkViewsCore-9.0d.lib
vtkViewsInfovis-9.0.lib
vtkViewsInfovis-9.0d.lib
vtkWrappingTools-9.0.lib
vtkWrappingTools-9.0d.lib
vtkzlib-9.0.lib
vtkzlib-9.0d.lib

以上内容可以自动生成,首先在这些lib文件所在目录下新建一个文件:get.txt,并写入如下内容:

DIR *.lib /B >liblist.txt

然后修改改文件名为:get.bat,这是一个可执行文件。

接着我们在所在目录下再新建一个文件:liblist.txt,然后双击get.bat,就可以将所有的.lib文件写入到liblist.txt中。

这时,点击确定,我们在Debug模式下的点云开发环境就配置完成了。去网上找个实例代码粘贴,如果成功编译运行就代表配置成功了。

接下来说一下Release模式的配置。Release模式的配置和Debug模式一模一样。

这样,我们的Debug模式和Release模式就全部配置完成了,根据自己的需要选择即可。为了减少其他工程配置的负担,可以将这些配置保存为属性表,方法可以自行搜索,在此就不做赘述了。

有关Windows + VS2022超详细点云库(PCL)配置的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby-on-rails - Railstutorial : db:populate vs. 工厂女孩 - 2

    在railstutorial中,作者为什么选择使用这个(代码list10.25):http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-usersnamespace:dbdodesc"Filldatabasewithsampledata"task:populate=>:environmentdoRake::Task['db:reset'].invokeUser.create!(:name=>"ExampleUser",:email=>"example@railstutorial.org",:passwo

  3. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  4. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  5. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  6. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  7. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  8. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  9. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  10. Ruby 默认将 IRB 配置为 Pretty_Inspect - 2

    我是ruby​​的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽

随机推荐