Win10 系统下 VisualStudio2019 配置点云库 PCL1.11.1

Win10 系统下 VisualStudio2019 配置点云库 PCL1.11.1WIN10 系统 PCL1 11 1 的安装

一、下载PCL1.11.1

二、安装PCL1.11.1

2.1 安装“PCL-1.11.1-AllInOne-msvc2019-win64.exe”。
(1)选择第二个,自动添加系统变量
在这里插入图片描述
(2)安装路径选择D盘,系统会自动新建PCL 1.11.1文件夹。
在这里插入图片描述
2.2 安装完成之后打开文件夹 D:\PCL 1.11.1\3rdParty\OpenNI2
双击OpenNI-Windows-x64-2.2 选择路径(D:\PCL 1.11.1\3rdParty\OpenNI2)安装即可。










对于一些电脑可能会出现安装OpenNI2时未弹出,默认安装在C盘的情况。此时需要到目标文件夹双击安装程序,先点击REMOVE,将原本安装到c盘的卸载掉,之后重新安装到目标文件夹下。

在这里插入图片描述
2.3 全部安装完成后,将pcl-1.11.1-pdb-msvc2019-win64.zip解压后的.pdb文件拷贝到(D:\PCL 1.11.1\bin)中。
2.4 设置环境变量:右击计算机—属性—高级系统设置—高级—环境变量—用户变量—Path—编辑!
在这里插入图片描述
在这里直接给出,防止出现错误(依次添加):








%PCL_ROOT%\3rdParty\FLANN\bin %PCL_ROOT%\3rdParty\VTK\bin %OPENNI2_REDIST64% %OPENNI2_LIB64% %OPENNI2_INCLUDE64% 

到此,环境变量的配置完成。

三、设置VS2019

3.1 新建空项目
在这里插入图片描述
解决方案配置选择Debug,解决方案平台选择x64。
在这里插入图片描述
3.2 新建一个C++源文件
在这里插入图片描述
3.3 右击新建的项目—属性:打开属性表
在这里插入图片描述














3.4 配置属性—调试—环境—添加:
在这里插入图片描述

PATH=D:\PCL 1.11.1\\bin;D:\PCL 1.11.1\\3rdParty\FLANN\bin;D:\PCL 1.11.1\\3rdParty\VTK\bin;D:\PCL 1.11.1\\3rdParty\OpenNI2\Tools 

3.5 C/C++—常规—SDL检查:否
在这里插入图片描述
3.6 C/C++—语言—符合模式:否
在这里插入图片描述






四、配置PCL1.11.1

4.1 VC++目录—包含目录,添加7个include路径
在这里插入图片描述
具体添加的include路径如下:




D:\PCL 1.11.1\include\pcl-1.11 D:\PCL 1.11.1\3rdParty\Boost\include\boost-1_74 D:\PCL 1.11.1\3rdParty\Eigen\eigen3 D:\PCL 1.11.1\3rdParty\FLANN\include D:\PCL 1.11.1\3rdParty\OpenNI2\Include D:\PCL 1.11.1\3rdParty\Qhull\include D:\PCL 1.11.1\3rdParty\VTK\include\vtk-8.2 

4.2 VC++目录—库目录,添加6个lib路径
在这里插入图片描述
具体添加的lib路径如下:




D:\PCL 1.11.1\lib D:\PCL 1.11.1\3rdParty\Boost\lib D:\PCL 1.11.1\3rdParty\FLANN\lib D:\PCL 1.11.1\3rdParty\OpenNI2\Lib D:\PCL 1.11.1\3rdParty\Qhull\lib D:\PCL 1.11.1\3rdParty\VTK\lib 

4.3 C/C++—预处理器—预处理器定义—添加:

BOOST_USE_WINDOWS_H NOMINMAX _CRT_SECURE_NO_DEPRECATE 

在这里插入图片描述
4.4 链接器—输入—附加依赖项——添加PCL和VTK的相关lib文件。我用的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 vtkChartsCore-8.2-gd.lib vtkCommonColor-8.2-gd.lib vtkCommonComputationalGeometry-8.2-gd.lib vtkCommonCore-8.2-gd.lib vtkCommonDataModel-8.2-gd.lib vtkCommonExecutionModel-8.2-gd.lib vtkCommonMath-8.2-gd.lib vtkCommonMisc-8.2-gd.lib vtkCommonSystem-8.2-gd.lib vtkCommonTransforms-8.2-gd.lib vtkDICOMParser-8.2-gd.lib vtkDomainsChemistry-8.2-gd.lib vtkDomainsChemistryOpenGL2-8.2-gd.lib vtkdoubleconversion-8.2-gd.lib vtkexodusII-8.2-gd.lib vtkexpat-8.2-gd.lib vtkFiltersAMR-8.2-gd.lib vtkFiltersCore-8.2-gd.lib vtkFiltersExtraction-8.2-gd.lib vtkFiltersFlowPaths-8.2-gd.lib vtkFiltersGeneral-8.2-gd.lib vtkFiltersGeneric-8.2-gd.lib vtkFiltersGeometry-8.2-gd.lib vtkFiltersHybrid-8.2-gd.lib vtkFiltersHyperTree-8.2-gd.lib vtkFiltersImaging-8.2-gd.lib vtkFiltersModeling-8.2-gd.lib vtkFiltersParallel-8.2-gd.lib vtkFiltersParallelImaging-8.2-gd.lib vtkFiltersPoints-8.2-gd.lib vtkFiltersProgrammable-8.2-gd.lib vtkFiltersSelection-8.2-gd.lib vtkFiltersSMP-8.2-gd.lib vtkFiltersSources-8.2-gd.lib vtkFiltersStatistics-8.2-gd.lib vtkFiltersTexture-8.2-gd.lib vtkFiltersTopology-8.2-gd.lib vtkFiltersVerdict-8.2-gd.lib vtkfreetype-8.2-gd.lib vtkGeovisCore-8.2-gd.lib vtkgl2ps-8.2-gd.lib vtkglew-8.2-gd.lib vtkGUISupportMFC-8.2-gd.lib vtkhdf5-8.2-gd.lib vtkhdf5_hl-8.2-gd.lib vtkImagingColor-8.2-gd.lib vtkImagingCore-8.2-gd.lib vtkImagingFourier-8.2-gd.lib vtkImagingGeneral-8.2-gd.lib vtkImagingHybrid-8.2-gd.lib vtkImagingMath-8.2-gd.lib vtkImagingMorphological-8.2-gd.lib vtkImagingSources-8.2-gd.lib vtkImagingStatistics-8.2-gd.lib vtkImagingStencil-8.2-gd.lib vtkInfovisCore-8.2-gd.lib vtkInfovisLayout-8.2-gd.lib vtkInteractionImage-8.2-gd.lib vtkInteractionStyle-8.2-gd.lib vtkInteractionWidgets-8.2-gd.lib vtkIOAMR-8.2-gd.lib vtkIOAsynchronous-8.2-gd.lib vtkIOCityGML-8.2-gd.lib vtkIOCore-8.2-gd.lib vtkIOEnSight-8.2-gd.lib vtkIOExodus-8.2-gd.lib vtkIOExport-8.2-gd.lib vtkIOExportOpenGL2-8.2-gd.lib vtkIOExportPDF-8.2-gd.lib vtkIOGeometry-8.2-gd.lib vtkIOImage-8.2-gd.lib vtkIOImport-8.2-gd.lib vtkIOInfovis-8.2-gd.lib vtkIOLegacy-8.2-gd.lib vtkIOLSDyna-8.2-gd.lib vtkIOMINC-8.2-gd.lib vtkIOMovie-8.2-gd.lib vtkIONetCDF-8.2-gd.lib vtkIOParallel-8.2-gd.lib vtkIOParallelXML-8.2-gd.lib vtkIOPLY-8.2-gd.lib vtkIOSegY-8.2-gd.lib vtkIOSQL-8.2-gd.lib vtkIOTecplotTable-8.2-gd.lib vtkIOVeraOut-8.2-gd.lib vtkIOVideo-8.2-gd.lib vtkIOXML-8.2-gd.lib vtkIOXMLParser-8.2-gd.lib vtkjpeg-8.2-gd.lib vtkjsoncpp-8.2-gd.lib vtklibharu-8.2-gd.lib vtklibxml2-8.2-gd.lib vtklz4-8.2-gd.lib vtklzma-8.2-gd.lib vtkmetaio-8.2-gd.lib vtkNetCDF-8.2-gd.lib vtkogg-8.2-gd.lib vtkParallelCore-8.2-gd.lib vtkpng-8.2-gd.lib vtkproj-8.2-gd.lib vtkpugixml-8.2-gd.lib vtkRenderingAnnotation-8.2-gd.lib vtkRenderingContext2D-8.2-gd.lib vtkRenderingContextOpenGL2-8.2-gd.lib vtkRenderingCore-8.2-gd.lib vtkRenderingExternal-8.2-gd.lib vtkRenderingFreeType-8.2-gd.lib vtkRenderingGL2PSOpenGL2-8.2-gd.lib vtkRenderingImage-8.2-gd.lib vtkRenderingLabel-8.2-gd.lib vtkRenderingLOD-8.2-gd.lib vtkRenderingOpenGL2-8.2-gd.lib vtkRenderingVolume-8.2-gd.lib vtkRenderingVolumeOpenGL2-8.2-gd.lib vtksqlite-8.2-gd.lib vtksys-8.2-gd.lib vtktheora-8.2-gd.lib vtktiff-8.2-gd.lib vtkverdict-8.2-gd.lib vtkViewsContext2D-8.2-gd.lib vtkViewsCore-8.2-gd.lib vtkViewsInfovis-8.2-gd.lib vtkzlib-8.2-gd.lib 

安装完毕!!!
release版本附加依赖项

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 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 

五、测试代码

#include  
     #include  
     #include  
     #include  
     #include  
     #include  
     #include  
     using namespace std; int main(int argc, char** argv) { 
    srand((unsigned int)time(NULL)); pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); // 创建点云数据 cloud->width = 1000; cloud->height = 1; cloud->points.resize(cloud->width * cloud->height); for (size_t i = 0; i < cloud->points.size(); ++i) { 
    cloud->points[i].x = 1024.0f * rand() / (RAND_MAX + 1.0f); cloud->points[i].y = 1024.0f * rand() / (RAND_MAX + 1.0f); cloud->points[i].z = 1024.0f * rand() / (RAND_MAX + 1.0f); } pcl::octree::OctreePointCloudSearch<pcl::PointXYZ> octree(0.1); octree.setInputCloud(cloud); octree.addPointsFromInputCloud(); pcl::PointXYZ searchPoint; searchPoint.x = 1024.0f * rand() / (RAND_MAX + 1.0f); searchPoint.y = 1024.0f * rand() / (RAND_MAX + 1.0f); searchPoint.z = 1024.0f * rand() / (RAND_MAX + 1.0f); //半径内近邻搜索 vector<int>pointIdxRadiusSearch; vector<float>pointRadiusSquaredDistance; float radius = 256.0f * rand() / (RAND_MAX + 1.0f); cout << "Neighbors within radius search at (" << searchPoint.x << " " << searchPoint.y << " " << searchPoint.z << ") with radius=" << radius << endl; if (octree.radiusSearch(searchPoint, radius, pointIdxRadiusSearch, pointRadiusSquaredDistance) > 0) { 
    for (size_t i = 0; i < pointIdxRadiusSearch.size(); ++i) cout << " " << cloud->points[pointIdxRadiusSearch[i]].x << " " << cloud->points[pointIdxRadiusSearch[i]].y << " " << cloud->points[pointIdxRadiusSearch[i]].z << " (squared distance: " << pointRadiusSquaredDistance[i] << ")" << endl; } // 初始化点云可视化对象 boost::shared_ptr<pcl::visualization::PCLVisualizer>viewer(new pcl::visualization::PCLVisualizer("显示点云")); viewer->setBackgroundColor(0, 0, 0); //设置背景颜色为黑色 // 对点云着色可视化 (red). pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ>target_color(cloud, 255, 0, 0); viewer->addPointCloud<pcl::PointXYZ>(cloud, target_color, "target cloud"); viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "target cloud"); // 等待直到可视化窗口关闭 while (!viewer->wasStopped()) { 
    viewer->spinOnce(100); boost::this_thread::sleep(boost::posix_time::microseconds(1000)); } return (0); } 

输出下图(数字可能不同),则表示安装成功!
在这里插入图片描述

六、附录—获取附加依赖项

#include  
     #include  
     #include  
     #include  
     #include  
     using namespace std; #pragma region // 从文件夹中读取lib文件 vector<string>batchFetchingLib(string& folder_path) { 
    string filename_suffix = "/*lib"; // lib文件的文件名后缀(.lib) vector<string>files; struct _finddata_t fileinfo; intptr_t handle; handle = _findfirst((folder_path + filename_suffix).data(), &fileinfo); if (handle == -1) { 
    printf("输入的路径有错误"); exit(-1); } else { 
    files.push_back(fileinfo.name); while (_findnext(handle, &fileinfo) == 0) { 
    if (strcmp(fileinfo.name, ".") == 0 || strcmp(fileinfo.name, "..") == 0) continue; files.push_back(fileinfo.name); } } _findclose(handle); return files; } #pragma endregion int main() { 
    string pcl_lib_path("D://PCL 1.11.1//lib"); // 读取lib文件的路径 string vtk_lib_path("D://PCL 1.11.1//3rdParty//VTK//lib"); // 读取VTK-lib文件的路径 vector<string>PCL = batchFetchingLib(pcl_lib_path); // 获取lib文件名 vector<string>VTK = batchFetchingLib(vtk_lib_path); // 获取VTK-lib文件名 ofstream release, debug;// 保存的文件 release.open("PCL1.11.1_Release附加依赖项.txt", ios::app); debug.open("PCL1.11.1_Debug附加依赖项.txt", ios::app); for (size_t i = 0; i < PCL.size(); ++i) { 
    (i % 2 == 0) ? release << PCL[i] << endl : debug << PCL[i] << endl; } for (size_t i = 0; i < VTK.size(); ++i) { 
    (i % 2 != 0) ? release << VTK[i] << endl : debug << VTK[i] << endl; } release.close(); debug.close(); cout << "附加依赖项获取完毕!!!" << endl; return 0; } 

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175696.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午11:38
下一篇 2026年3月26日 下午11:39


相关推荐

  • Android百度地图接入

    Android百度地图接入

    2021年9月30日
    48
  • 【硬件通信协议】1. 详细解析IIC通信协议

    【硬件通信协议】1. 详细解析IIC通信协议版权声明:欢迎交流 https://blog.csdn.net/sishuihuahua/article/details/88128761 </div> <linkrel=”stylesheet”href=”https://csdnimg.cn/release/phoenix/template/c…

    2022年5月29日
    170
  • Oracle更新sysdate,ORACLE SYSDATE 1

    Oracle更新sysdate,ORACLE SYSDATE 1日一二三四五六在 oracle 中有很多关于日期的函数 如 22 add months 用于从一个日期值增加或减少一些月份 date value add months date value number of months 例 SQL gt selectadd months sysdate 12 Next 但是需要注意的一点是 如果同时使用 sys

    2026年3月19日
    2
  • PowerDesign的使用[通俗易懂]

    PowerDesign的使用[通俗易懂]使用powerdesign

    2022年7月3日
    40
  • DotNetty完全教程(二)

    DotNetty完全教程(二)第一个 DotNetty 应用程序准备工作 NuGet 包介绍 DotNetty 由九个项目构成 在 NuGet 中都是单独的包 可以按需引用 其中比较重要的几个是以下几个 DotNetty Common 是公共的类库项目 包装线程池 并行任务和常用帮助类的封装 DotNetty Transport 是 DotNetty 核心的实现 DotNetty Buffers 是对内存缓冲区管理的封装 DotNett

    2026年3月20日
    2
  • archlinux安装教程以及自己踩过的坑

    archlinux安装教程以及自己踩过的坑引言 linux 是一种哲学 最近喜欢上了 arch 的简洁 可高度定制化 滚动更新和设计哲学 准备日常办公从 ubuntu 转向 arch 目前已完成安装 正在使用 arch 写这篇博客 而事实证明 arch 确实没让我失望 它的确是一个非常不错的发行版 安装环境 cpu i5ram 12G 台式电脑一块硬盘 有剩余空间或新硬盘都可以 我这里用的是 1T 新硬盘 GPT 分区 UEFI 启动 一块 8GU 盘从

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号