Windows 安装 PCL

参考

PCL安装(C++)并配置vs

3D点云学习笔记(PCL安装及配置)

Windows下安装点云处理库PCL

Windows环境下pcl点云库 安装配置全流程(精简、有效)

环境

Windows 10,vs2022,pcl1.13.0

一、下载

选择自己合适的版本进行下载,下载allinone和pdb

下载连接:https://github.com/PointCloudLibrary/pcl/releases
在这里插入图片描述

二、安装及配置变量

安装

点击下载的PCL-1.13.0-AllInOne-msvc2022-win64.exe进行安装

  • 选择Add PCL to the system PATH for all users,这样它就会在安装过程中将环境变量写入电脑。
  • 选择安装目录
  • 组件界面选择全部组件,确保“3rdParty”组件被勾选,以包含所有必要的第三方库
  • 一路next
  • 如果有窗口有路径太长的错误提示,点击确定没关系的,但就需要手动添加环境变量了

安装程序结束后,PCL安装目录包含Boost、Eigen、FLANN、OpenNI2、Qhull和VTK六个文件夹。

注意:看一下PCL 1.13.0\3rdParty\OpenNI2里是否有文件

  • 没有的话到C盘的Program File下或者Program File(x86)下找一下,将内容拷贝到PCL 1.13.0\3rdParty文件夹下

pdb文件

将pcl-1.13.0-pdb-msvc2022-win64.zip文件解压缩,将pdb文件全部复制到PCL安装目录下的bin文件夹中。

环境变量:安装完毕之后去系统环境变量中检查是否配置上了环境变量。

  • 如果没有,自动配置完成,可以自己进行添加

在这里插入图片描述

三、VS2019配置

1. 获取所需的lib文件名

分别在

  • PCL1.13.0\3rdParty\OpenNI2\Lib
  • PCL1.13.0\lib
  • PCL1.13.0\3rdParty\VTK\lib;

三个文件夹下创建一个txt文件。

  • 如果使用release版本,txt文件中就写dir /b *.lib >release.txt,
  • 如果使用debug版本,txt文件中就写dir /b *d.lib >debug.txt,

然后改成bat文件,双击获得一个release.txt或者debug.txt文件,这样就可以把当前目录所有的lib文件名都写在txt文档中了,否则要一个一个输入进去,非常的麻烦。

debug版本下的lib文件名:

OpenNI2.lib
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.2-gd.lib
vtkChartsCore-9.2-gd.lib
vtkCommonColor-9.2-gd.lib
vtkCommonComputationalGeometry-9.2-gd.lib
vtkCommonCore-9.2-gd.lib
vtkCommonDataModel-9.2-gd.lib
vtkCommonExecutionModel-9.2-gd.lib
vtkCommonMath-9.2-gd.lib
vtkCommonMisc-9.2-gd.lib
vtkCommonSystem-9.2-gd.lib
vtkCommonTransforms-9.2-gd.lib
vtkDICOMParser-9.2-gd.lib
vtkDomainsChemistry-9.2-gd.lib
vtkDomainsChemistryOpenGL2-9.2-gd.lib
vtkdoubleconversion-9.2-gd.lib
vtkexodusII-9.2-gd.lib
vtkexpat-9.2-gd.lib
vtkFiltersAMR-9.2-gd.lib
vtkFiltersCore-9.2-gd.lib
vtkFiltersExtraction-9.2-gd.lib
vtkFiltersFlowPaths-9.2-gd.lib
vtkFiltersGeneral-9.2-gd.lib
vtkFiltersGeneric-9.2-gd.lib
vtkFiltersGeometry-9.2-gd.lib
vtkFiltersHybrid-9.2-gd.lib
vtkFiltersHyperTree-9.2-gd.lib
vtkFiltersImaging-9.2-gd.lib
vtkFiltersModeling-9.2-gd.lib
vtkFiltersParallel-9.2-gd.lib
vtkFiltersParallelImaging-9.2-gd.lib
vtkFiltersPoints-9.2-gd.lib
vtkFiltersProgrammable-9.2-gd.lib
vtkFiltersSelection-9.2-gd.lib
vtkFiltersSMP-9.2-gd.lib
vtkFiltersSources-9.2-gd.lib
vtkFiltersStatistics-9.2-gd.lib
vtkFiltersTexture-9.2-gd.lib
vtkFiltersTopology-9.2-gd.lib
vtkFiltersVerdict-9.2-gd.lib
vtkfmt-9.2-gd.lib
vtkfreetype-9.2-gd.lib
vtkGeovisCore-9.2-gd.lib
vtkgl2ps-9.2-gd.lib
vtkglew-9.2-gd.lib
vtkhdf5-9.2-gd.lib
vtkhdf5_hl-9.2-gd.lib
vtkImagingColor-9.2-gd.lib
vtkImagingCore-9.2-gd.lib
vtkImagingFourier-9.2-gd.lib
vtkImagingGeneral-9.2-gd.lib
vtkImagingHybrid-9.2-gd.lib
vtkImagingMath-9.2-gd.lib
vtkImagingMorphological-9.2-gd.lib
vtkImagingSources-9.2-gd.lib
vtkImagingStatistics-9.2-gd.lib
vtkImagingStencil-9.2-gd.lib
vtkInfovisCore-9.2-gd.lib
vtkInfovisLayout-9.2-gd.lib
vtkInteractionImage-9.2-gd.lib
vtkInteractionStyle-9.2-gd.lib
vtkInteractionWidgets-9.2-gd.lib
vtkIOAMR-9.2-gd.lib
vtkIOAsynchronous-9.2-gd.lib
vtkIOCesium3DTiles-9.2-gd.lib
vtkIOCGNSReader-9.2-gd.lib
vtkIOChemistry-9.2-gd.lib
vtkIOCityGML-9.2-gd.lib
vtkIOCONVERGECFD-9.2-gd.lib
vtkIOCore-9.2-gd.lib
vtkIOEnSight-9.2-gd.lib
vtkIOExodus-9.2-gd.lib
vtkIOExport-9.2-gd.lib
vtkIOExportGL2PS-9.2-gd.lib
vtkIOExportPDF-9.2-gd.lib
vtkIOGeometry-9.2-gd.lib
vtkIOHDF-9.2-gd.lib
vtkIOImage-9.2-gd.lib
vtkIOImport-9.2-gd.lib
vtkIOInfovis-9.2-gd.lib
vtkIOIOSS-9.2-gd.lib
vtkIOLegacy-9.2-gd.lib
vtkIOLSDyna-9.2-gd.lib
vtkIOMINC-9.2-gd.lib
vtkIOMotionFX-9.2-gd.lib
vtkIOMovie-9.2-gd.lib
vtkIONetCDF-9.2-gd.lib
vtkIOOggTheora-9.2-gd.lib
vtkIOParallel-9.2-gd.lib
vtkIOParallelXML-9.2-gd.lib
vtkIOPLY-9.2-gd.lib
vtkIOSegY-9.2-gd.lib
vtkIOSQL-9.2-gd.lib
vtkioss-9.2-gd.lib
vtkIOTecplotTable-9.2-gd.lib
vtkIOVeraOut-9.2-gd.lib
vtkIOVideo-9.2-gd.lib
vtkIOXML-9.2-gd.lib
vtkIOXMLParser-9.2-gd.lib
vtkjpeg-9.2-gd.lib
vtkjsoncpp-9.2-gd.lib
vtkkissfft-9.2-gd.lib
vtklibharu-9.2-gd.lib
vtklibproj-9.2-gd.lib
vtklibxml2-9.2-gd.lib
vtkloguru-9.2-gd.lib
vtklz4-9.2-gd.lib
vtklzma-9.2-gd.lib
vtkmetaio-9.2-gd.lib
vtknetcdf-9.2-gd.lib
vtkogg-9.2-gd.lib
vtkParallelCore-9.2-gd.lib
vtkParallelDIY-9.2-gd.lib
vtkpng-9.2-gd.lib
vtkpugixml-9.2-gd.lib
vtkRenderingAnnotation-9.2-gd.lib
vtkRenderingContext2D-9.2-gd.lib
vtkRenderingContextOpenGL2-9.2-gd.lib
vtkRenderingCore-9.2-gd.lib
vtkRenderingFreeType-9.2-gd.lib
vtkRenderingGL2PSOpenGL2-9.2-gd.lib
vtkRenderingHyperTreeGrid-9.2-gd.lib
vtkRenderingImage-9.2-gd.lib
vtkRenderingLabel-9.2-gd.lib
vtkRenderingLICOpenGL2-9.2-gd.lib
vtkRenderingLOD-9.2-gd.lib
vtkRenderingOpenGL2-9.2-gd.lib
vtkRenderingSceneGraph-9.2-gd.lib
vtkRenderingUI-9.2-gd.lib
vtkRenderingVolume-9.2-gd.lib
vtkRenderingVolumeOpenGL2-9.2-gd.lib
vtkRenderingVtkJS-9.2-gd.lib
vtksqlite-9.2-gd.lib
vtksys-9.2-gd.lib
vtkTestingRendering-9.2-gd.lib
vtktheora-9.2-gd.lib
vtktiff-9.2-gd.lib
vtkverdict-9.2-gd.lib
vtkViewsContext2D-9.2-gd.lib
vtkViewsCore-9.2-gd.lib
vtkViewsInfovis-9.2-gd.lib
vtkWrappingTools-9.2-gd.lib
vtkzlib-9.2-gd.lib

2.VS2019配置

配置包含目录:VC++目录——包含目录

  • E:\PCL 1.13.0\include\pcl-1.13
  • E:\PCL 1.13.0\3rdParty\Boost\include\boost-1_80
  • E:\PCL 1.13.0\3rdParty\Eigen\eigen3
  • E:\PCL 1.13.0\3rdParty\FLANN\include
  • E:\PCL 1.13.0\3rdParty\Qhull\include
  • E:\PCL 1.13.0\3rdParty\OpenNI2\Include
  • E:\PCL 1.13.0\3rdParty\VTK\include\vtk-9.2

配置库目录:VC++目录——库目录

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

配置第三方库:链接器——输入。第一步获取的lib文件名

配置预处理器:C/C+±——预处理器

  • 预处理器定义:添加_CRT_SECURE_NO_WARNINGS

四、测试程序

不需要额外准备pcl文件,制作柱形点云集

#include <iostream>
#include <pcl/common/common_headers.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/console/parse.h>
using namespace std;

int main(int argc, char** argv) {								//柱型点云测试
	cout << "Test PCL !" << endl;
	pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr(new pcl::PointCloud<pcl::PointXYZRGB>);
	uint8_t r(255), g(15), b(15);
	for (float z(-1.0); z <= 1.0; z += 0.05) {					//制作柱型点云集
		for (float angle(0.0); angle <= 360.0; angle += 5.0) {
			pcl::PointXYZRGB point;
			point.x = cos(pcl::deg2rad(angle));
			point.y = sin(pcl::deg2rad(angle));
			point.z = z;
			uint32_t rgb = (static_cast<uint32_t>(r) << 16 | static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b));
			point.rgb = *reinterpret_cast<float*>(&rgb);
			point_cloud_ptr->points.push_back(point);
		}
		if (z < 0.0) {		//颜色渐变
			r -= 12;
			g += 12;
		}
		else {
			g -= 12;
			b += 12;
		}
	}

	point_cloud_ptr->width = (int)point_cloud_ptr->points.size();
	point_cloud_ptr->height = 1;

	pcl::visualization::CloudViewer viewer("pcl—test测试");

	viewer.showCloud(point_cloud_ptr);
	while (!viewer.wasStopped()) {};
	return 0;
}

五、可能出现的问题

1.变量名不安全C4996

C++ 解决error C4996: ‘_open‘: This function or variable may be unsafe. Consider using _sopen_s instead

错误信息:error C4996: ‘_open‘: This function or variable may be unsafe. Consider using _sopen_s instead

解决方案:

  1. 将你所用的这个变量或者名称的名字按照要求改成定义里面的
  2. 直接简单暴力的屏蔽掉安全警告:项目->属性->c/c+±>预处理器->预处理器定义,添加_CRT_SECURE_NO_WARNINGS

2.找不到dll文件

找不到vtkCommoncore-8.2.dll,vtkImagingSources.dll问题的解决方法

【C++】由于找不到xxx.dll,无法继续执行代码,重新安装程序可能会解决此问题。(解决办法)

错误信息:报错找不到vtkCommoncore-9.2.dll

原因分析:

  • 环境变量没设置好
  • 环境变量没问题,但是代码未找到依赖

解决方案1:

  • 项目——属性——调试——环境——编辑
  • PATH=E:\PCL 1.13.0\3rdParty\VTK\bin;E:\PCL 1.13.0\bin;E:\PCL 1.13.0\3rdParty\OpenNI2\Redist;&(LocalDebuggerEnvironment)

解决方案2:dll文件少时可以使用

  • 找到对应的dll文件
  • 打开你的系统路径C:\Windows\System32(必须是System32文件夹),将刚才复制的DLL文件粘贴到文件夹中即可。
  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值