4 win10环境下+vs2017+pcl1.9环境配置

本文档详细介绍了如何在Windows系统中配置PCL(Point Cloud Library)的环境,包括系统环境变量设置和VS2017项目的配置。首先,需要在系统环境变量中添加PCL的安装路径。然后,在VS2017中创建新项目,通过属性管理器配置项目属性,如包含目录、库目录、预处理器定义等,并在链接器的输入中添加大量依赖库文件。配置完成后,通过一个简单的测试代码验证环境是否配置成功。测试代码从txt文件读取点云数据并转换为pcd文件,再用PCLVisualizer显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.系统环境变量配置

1.搜索栏搜索环境变量,点击编辑环境变量,进入下图后点击环境变量
在这里插入图片描述
2.找到系统变量里的path,然后双击进入
在这里插入图片描述
3.添加路径,以下图片中没有的添加进去。路径是你安装pcl时的路径
在这里插入图片描述
这一步完成之后需要将电脑重启一下才能生效

2. vs2017环境配置

1.先创建一个新项目
在这里插入图片描述
在这里插入图片描述
2.属性管理器中进行属性的配置(该步骤就是搭建一个自己特色的环境+以下环境是在realse+x64环境下设置的)
在这里插入图片描述
调出属性管理器 ,在releasex64 文件右击,新建一个属性表,自己把名字取号,我的取名为pcl

在这里插入图片描述

在这里插入图片描述
新建完成后,双击新建好的属性表,进行配置:
通用属性—>VC++目录—>包含目录中添加红框中的7个目录(根据自己的安装目录来配置)

...PCL 1.9.0\include\pcl-1.9
...PCL 1.9.0\3rdParty\Boost\include\boost-1_68
...PCL 1.9.0\3rdParty\Eigen\eigen3
...PCL 1.9.0\3rdParty\FLANN\include
...PCL 1.9.0\3rdParty\Qhull\include
...PCL 1.9.0\3rdParty\OpenNI2\Include
...PCL 1.9.0\3rdParty\VTK\include\vtk-8.1

在这里插入图片描述
然后在通用属性—>VC++目录—>库目录中添加如下6个目录:

  ...PCL1.9.0\PCL 1.9.0\lib
  ...PCL1.9.0\PCL 1.9.0\3rdParty\Boost\lib
  ...PCL1.9.0\PCL 1.9.0\3rdParty\FLANN\lib
  ...PCL 1.9.0\3rdParty\OpenNI2\Lib
  ...PCL1.9.0\PCL 1.9.0\3rdParty\Qhull\lib
  ...PCL1.9.0\PCL 1.9.0\3rdParty\VTK\lib

在这里插入图片描述
C/C++—>预处理器—>预处理器定义中添加

_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING

在这里插入图片描述
C/C++—>所有选项—>SDL检查改为否。
在这里插入图片描述
最后,也是最麻烦的一个:在通用属性—>链接器—>输入—>附加的依赖项中添加对应的.“lib”文件,主要是添加PCL的“.lib”文件和第三方库中VTK的“.lib”文件。
在这里插入图片描述
具体的库文件在pcl安装文件的lib中可以查看,也可以直接复制我后面给出的代码,但是一定要看好版本。
在这里插入图片描述
注意vtk的版本
在这里插入图片描述
因为我们之前的环境选择的是release,所以把所有release相关的库文件路径,加入到附加依赖项:
release版本:

pcl_common_release.lib
pcl_features_release.lib
pcl_filters_release.lib
pcl_io_ply_release.lib
pcl_io_release.lib
pcl_kdtree_release.lib
pcl_keypoints_release.lib
pcl_ml_release.lib
pcl_octree_release.lib
pcl_outofcore_release.lib
pcl_people_release.lib
pcl_recognition_release.lib
pcl_registration_release.lib
pcl_sample_consensus_release.lib
pcl_search_release.lib
pcl_segmentation_release.lib
pcl_stereo_release.lib
pcl_surface_release.lib
pcl_tracking_release.lib
pcl_visualization_release.lib
vtkalglib-8.1.lib
vtkChartsCore-8.1.lib
vtkCommonColor-8.1.lib
vtkCommonComputationalGeometry-8.1.lib
vtkCommonCore-8.1.lib
vtkCommonDataModel-8.1.lib
vtkCommonExecutionModel-8.1.lib
vtkCommonMath-8.1.lib
vtkCommonMisc-8.1.lib
vtkCommonSystem-8.1.lib
vtkCommonTransforms-8.1.lib
vtkDICOMParser-8.1.lib
vtkDomainsChemistry-8.1.lib
vtkexoIIc-8.1.lib
vtkexpat-8.1.lib
vtkFiltersAMR-8.1.lib
vtkFiltersCore-8.1.lib
vtkFiltersExtraction-8.1.lib
vtkFiltersFlowPaths-8.1.lib
vtkFiltersGeneral-8.1.lib
vtkFiltersGeneric-8.1.lib
vtkFiltersGeometry-8.1.lib
vtkFiltersHybrid-8.1.lib
vtkFiltersHyperTree-8.1.lib
vtkFiltersImaging-8.1.lib
vtkFiltersModeling-8.1.lib
vtkFiltersParallel-8.1.lib
vtkFiltersParallelImaging-8.1.lib
vtkFiltersPoints-8.1.lib
vtkFiltersProgrammable-8.1.lib
vtkFiltersSelection-8.1.lib
vtkFiltersSMP-8.1.lib
vtkFiltersSources-8.1.lib
vtkFiltersStatistics-8.1.lib
vtkFiltersTexture-8.1.lib
vtkFiltersTopology-8.1.lib
vtkFiltersVerdict-8.1.lib
vtkfreetype-8.1.lib
vtkGeovisCore-8.1.lib
vtkgl2ps-8.1.lib
vtkhdf5-8.1.lib
vtkhdf5_hl-8.1.lib
vtkImagingColor-8.1.lib
vtkImagingCore-8.1.lib
vtkImagingFourier-8.1.lib
vtkImagingGeneral-8.1.lib
vtkImagingHybrid-8.1.lib
vtkImagingMath-8.1.lib
vtkImagingMorphological-8.1.lib
vtkImagingSources-8.1.lib
vtkImagingStatistics-8.1.lib
vtkImagingStencil-8.1.lib
vtkInfovisCore-8.1.lib
vtkInfovisLayout-8.1.lib
vtkInteractionImage-8.1.lib
vtkInteractionStyle-8.1.lib
vtkInteractionWidgets-8.1.lib
vtkIOAMR-8.1.lib
vtkIOCore-8.1.lib
vtkIOEnSight-8.1.lib
vtkIOExodus-8.1.lib
vtkIOExport-8.1.lib
vtkIOExportOpenGL-8.1.lib
vtkIOGeometry-8.1.lib
vtkIOImage-8.1.lib
vtkIOImport-8.1.lib
vtkIOInfovis-8.1.lib
vtkIOLegacy-8.1.lib
vtkIOLSDyna-8.1.lib
vtkIOMINC-8.1.lib
vtkIOMovie-8.1.lib
vtkIONetCDF-8.1.lib
vtkIOParallel-8.1.lib
vtkIOParallelXML-8.1.lib
vtkIOPLY-8.1.lib
vtkIOSQL-8.1.lib
vtkIOTecplotTable-8.1.lib
vtkIOVideo-8.1.lib
vtkIOXML-8.1.lib
vtkIOXMLParser-8.1.lib
vtkjpeg-8.1.lib
vtkjsoncpp-8.1.lib
vtklibharu-8.1.lib
vtklibxml2-8.1.lib
vtklz4-8.1.lib
vtkmetaio-8.1.lib
vtkNetCDF-8.1.lib
vtknetcdfcpp-8.1.lib
vtkoggtheora-8.1.lib
vtkParallelCore-8.1.lib
vtkpng-8.1.lib
vtkproj4-8.1.lib
vtkRenderingAnnotation-8.1.lib
vtkRenderingContext2D-8.1.lib
vtkRenderingContextOpenGL-8.1.lib
vtkRenderingCore-8.1.lib
vtkRenderingFreeType-8.1.lib
vtkRenderingGL2PS-8.1.lib
vtkRenderingImage-8.1.lib
vtkRenderingLabel-8.1.lib
vtkRenderingLIC-8.1.lib
vtkRenderingLOD-8.1.lib
vtkRenderingOpenGL-8.1.lib
vtkRenderingVolume-8.1.lib
vtkRenderingVolumeOpenGL-8.1.lib
vtksqlite-8.1.lib
vtksys-8.1.lib
vtktiff-8.1.lib
vtkverdict-8.1.lib
vtkViewsContext2D-8.1.lib
vtkViewsCore-8.1.lib
vtkViewsInfovis-8.1.lib
vtkzlib-8.1.lib

debug版本也给出(这个release版本的不用添加,不用添加

pcl_common_debug.lib
pcl_features_debug.lib
pcl_filters_debug.lib
pcl_io_debug.lib
pcl_io_ply_debug.lib
pcl_kdtree_debug.lib
pcl_keypoints_debug.lib
pcl_ml_debug.lib
pcl_octree_debug.lib
pcl_outofcore_debug.lib
pcl_people_debug.lib
pcl_recognition_debug.lib
pcl_registration_debug.lib
pcl_sample_consensus_debug.lib
pcl_search_debug.lib
pcl_segmentation_debug.lib
pcl_stereo_debug.lib
pcl_surface_debug.lib
pcl_tracking_debug.lib
pcl_visualization_debug.lib
vtkalglib-8.1-gd.lib
vtkChartsCore-8.1-gd.lib
vtkCommonColor-8.1-gd.lib
vtkCommonComputationalGeometry-8.1-gd.lib
vtkCommonCore-8.1-gd.lib
vtkCommonDataModel-8.1-gd.lib
vtkCommonExecutionModel-8.1-gd.lib
vtkCommonMath-8.1-gd.lib
vtkCommonMisc-8.1-gd.lib
vtkCommonSystem-8.1-gd.lib
vtkCommonTransforms-8.1-gd.lib
vtkDICOMParser-8.1-gd.lib
vtkDomainsChemistry-8.1-gd.lib
vtkexoIIc-8.1-gd.lib
vtkexpat-8.1-gd.lib
vtkFiltersAMR-8.1-gd.lib
vtkFiltersCore-8.1-gd.lib
vtkFiltersExtraction-8.1-gd.lib
vtkFiltersFlowPaths-8.1-gd.lib
vtkFiltersGeneral-8.1-gd.lib
vtkFiltersGeneric-8.1-gd.lib
vtkFiltersGeometry-8.1-gd.lib
vtkFiltersHybrid-8.1-gd.lib
vtkFiltersHyperTree-8.1-gd.lib
vtkFiltersImaging-8.1-gd.lib
vtkFiltersModeling-8.1-gd.lib
vtkFiltersParallel-8.1-gd.lib
vtkFiltersParallelImaging-8.1-gd.lib
vtkFiltersPoints-8.1-gd.lib
vtkFiltersProgrammable-8.1-gd.lib
vtkFiltersSelection-8.1-gd.lib
vtkFiltersSMP-8.1-gd.lib
vtkFiltersSources-8.1-gd.lib
vtkFiltersStatistics-8.1-gd.lib
vtkFiltersTexture-8.1-gd.lib
vtkFiltersTopology-8.1-gd.lib
vtkFiltersVerdict-8.1-gd.lib
vtkfreetype-8.1-gd.lib
vtkGeovisCore-8.1-gd.lib
vtkgl2ps-8.1-gd.lib
vtkhdf5-8.1-gd.lib
vtkhdf5_hl-8.1-gd.lib
vtkImagingColor-8.1-gd.lib
vtkImagingCore-8.1-gd.lib
vtkImagingFourier-8.1-gd.lib
vtkImagingGeneral-8.1-gd.lib
vtkImagingHybrid-8.1-gd.lib
vtkImagingMath-8.1-gd.lib
vtkImagingMorphological-8.1-gd.lib
vtkImagingSources-8.1-gd.lib
vtkImagingStatistics-8.1-gd.lib
vtkImagingStencil-8.1-gd.lib
vtkInfovisCore-8.1-gd.lib
vtkInfovisLayout-8.1-gd.lib
vtkInteractionImage-8.1-gd.lib
vtkInteractionStyle-8.1-gd.lib
vtkInteractionWidgets-8.1-gd.lib
vtkIOAMR-8.1-gd.lib
vtkIOCore-8.1-gd.lib
vtkIOEnSight-8.1-gd.lib
vtkIOExodus-8.1-gd.lib
vtkIOExport-8.1-gd.lib
vtkIOExportOpenGL-8.1-gd.lib
vtkIOGeometry-8.1-gd.lib
vtkIOImage-8.1-gd.lib
vtkIOImport-8.1-gd.lib
vtkIOInfovis-8.1-gd.lib
vtkIOLegacy-8.1-gd.lib
vtkIOLSDyna-8.1-gd.lib
vtkIOMINC-8.1-gd.lib
vtkIOMovie-8.1-gd.lib
vtkIONetCDF-8.1-gd.lib
vtkIOParallel-8.1-gd.lib
vtkIOParallelXML-8.1-gd.lib
vtkIOPLY-8.1-gd.lib
vtkIOSQL-8.1-gd.lib
vtkIOTecplotTable-8.1-gd.lib
vtkIOVideo-8.1-gd.lib
vtkIOXML-8.1-gd.lib
vtkIOXMLParser-8.1-gd.lib
vtkjpeg-8.1-gd.lib
vtkjsoncpp-8.1-gd.lib
vtklibharu-8.1-gd.lib
vtklibxml2-8.1-gd.lib
vtklz4-8.1-gd.lib
vtkmetaio-8.1-gd.lib
vtkNetCDF-8.1-gd.lib
vtknetcdfcpp-8.1-gd.lib
vtkoggtheora-8.1-gd.lib
vtkParallelCore-8.1-gd.lib
vtkpng-8.1-gd.lib
vtkproj4-8.1-gd.lib
vtkRenderingAnnotation-8.1-gd.lib
vtkRenderingContext2D-8.1-gd.lib
vtkRenderingContextOpenGL-8.1-gd.lib
vtkRenderingCore-8.1-gd.lib
vtkRenderingFreeType-8.1-gd.lib
vtkRenderingGL2PS-8.1-gd.lib
vtkRenderingImage-8.1-gd.lib
vtkRenderingLabel-8.1-gd.lib
vtkRenderingLIC-8.1-gd.lib
vtkRenderingLOD-8.1-gd.lib
vtkRenderingOpenGL-8.1-gd.lib
vtkRenderingVolume-8.1-gd.lib
vtkRenderingVolumeOpenGL-8.1-gd.lib
vtksqlite-8.1-gd.lib
vtksys-8.1-gd.lib
vtktiff-8.1-gd.lib
vtkverdict-8.1-gd.lib
vtkViewsContext2D-8.1-gd.lib
vtkViewsCore-8.1-gd.lib
vtkViewsInfovis-8.1-gd.lib
vtkzlib-8.1-gd.lib

然后确定所有的操作进行保存,回到属性管理器,双击release|64x,把c/c++中的sdl检查改为否。
在这里插入图片描述

测试

到此,我们就配置好了vs的pcl环境,跑个测试代码进行测试

#include <pcl/visualization/cloud_viewer.h>
#include <iostream>//标准C++库中的输入输出类相关头文件。
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>//pcd 读写类相关的头文件。
#include <pcl/io/ply_io.h>
#include <pcl/point_types.h> //PCL中支持的点类型头文件。
#include<fstream>  
#include <string>  
#include <vector> 

using namespace std;

int main()
{
	typedef struct tagPOINT_3D
	{
		double x;  //mm world coordinate x  
		double y;  //mm world coordinate y  
		double z;  //mm world coordinate z  
		double r;
	}POINT_WORLD;


	//加载txt数据  
	int number_Txt;
	FILE *fp_txt;
	tagPOINT_3D TxtPoint;
	vector<tagPOINT_3D> m_vTxtPoints;
	fp_txt = fopen("za.txt", "r");
	if (fp_txt)
	{
		while (fscanf(fp_txt, "%lf %lf %lf", &TxtPoint.x, &TxtPoint.y, &TxtPoint.z) != EOF)
		{
			m_vTxtPoints.push_back(TxtPoint);
		}
	}
	else
		cout << "txt数据加载失败!" << endl;
	number_Txt = m_vTxtPoints.size();
	//pcl::PointCloud<pcl::PointXYZ> cloud;
	//这里使用“PointXYZ”是因为我后面给的点云信息是包含的三维坐标,同时还有点云信息包含的rgb颜色信息的或者还有包含rgba颜色和强度信息。
	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
	// Fill in the cloud data  
	cloud->width = number_Txt;
	cloud->height = 1;
	cloud->is_dense = false;
	cloud->points.resize(cloud->width * cloud->height);
	for (size_t i = 0; i < cloud->points.size(); ++i)
	{
		cloud->points[i].x = m_vTxtPoints[i].x;
		cloud->points[i].y = m_vTxtPoints[i].y;
		cloud->points[i].z = m_vTxtPoints[i].z;
	}
	pcl::io::savePCDFileASCII("txt2pcd_bunny1.pcd", *cloud);
	std::cerr << "Saved " << cloud->points.size() << " data points to txt2pcd.pcd." << std::endl;

	//for (size_t i = 0; i < cloud.points.size(); ++i)
	//  std::cerr << "    " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << std::endl;

	//PCL Visualizer
	// Viewer  
	pcl::visualization::PCLVisualizer viewer("Cloud Viewer");
	viewer.addPointCloud(cloud);
	viewer.setBackgroundColor(0, 0, 0);

	viewer.spin();
	system("pause");
	return 0;

}

在项目目录下新建一个txt文件,名字为za.txt,然后把下面的数据复制进txt文件中去,保存。

-3.03387	-3.03879	-2.05533
-3.03776	-3.03882	-2.05536
-3.04165	-3.03886	-2.05538
-3.04554	-3.0389	-2.05541
-3.04943	-3.03894	-2.05543
-3.05332	-3.03897	-2.05546
-3.05721	-3.03901	-2.05548
-3.0611	-3.03905	-2.05551
-3.06499	-3.03908	-2.05553
-3.06888	-3.03912	-2.05556
-3.07277	-3.03916	-2.05558
-3.07666	-3.03919	-2.05561
-3.08055	-3.03923	-2.05563
-3.08444	-3.03927	-2.05566
-3.08833	-3.03931	-2.05568
-3.09222	-3.03934	-2.05571
-3.09612	-3.03938	-2.05573
-3.10001	-3.03942	-2.05576
-3.1039	-3.03945	-2.05578
-3.10779	-3.03949	-2.05581
-3.11168	-3.03953	-2.05583
-3.11557	-3.03956	-2.05586
-3.11947	-3.0396	-2.05588
-3.12336	-3.03964	-2.05591
-3.12725	-3.03968	-2.05593
-3.13114	-3.03971	-2.05596
-3.13503	-3.03975	-2.05598
-3.13893	-3.03979	-2.05601
-3.14282	-3.03982	-2.05603
-3.14671	-3.03986	-2.05606
-3.1506	-3.0399	-2.05608
-3.1545	-3.03993	-2.05611
-3.15839	-3.03997	-2.05613
-3.16228	-3.04001	-2.05616
-3.16618	-3.04005	-2.05618
-3.17007	-3.04008	-2.05621
-3.17396	-3.04012	-2.05623
-3.17786	-3.04016	-2.05626
-3.18175	-3.04019	-2.05628
-3.18564	-3.04023	-2.05631
-3.18954	-3.04027	-2.05633
-3.19343	-3.0403	-2.05636
-3.19732	-3.04034	-2.05638
-3.20122	-3.04038	-2.05641
-3.20511	-3.04042	-2.05643
-3.20901	-3.04045	-2.05646
-3.2129	-3.04049	-2.05648
-3.21679	-3.04053	-2.05651
-3.22069	-3.04056	-2.05653
-3.22458	-3.0406	-2.05656
-3.22848	-3.04064	-2.05658
-3.23237	-3.04068	-2.05661
-3.23627	-3.04071	-2.05663
-3.24016	-3.04075	-2.05666
-3.24406	-3.04079	-2.05668
-3.24795	-3.04082	-2.05671
-3.25185	-3.04086	-2.05673
-3.25574	-3.0409	-2.05676
-3.25964	-3.04093	-2.05678
-3.26353	-3.04097	-2.05681
-3.26743	-3.04101	-2.05683
-3.27132	-3.04105	-2.05686
-3.27522	-3.04108	-2.05688
-3.27912	-3.04112	-2.05691
-3.28301	-3.04116	-2.05693
-3.28691	-3.04119	-2.05696
-3.2908	-3.04123	-2.05698
-3.2947	-3.04127	-2.05701
-3.2986	-3.0413	-2.05703
-3.30249	-3.04134	-2.05706
-3.30639	-3.04138	-2.05708
-3.31029	-3.04142	-2.05711
-3.31418	-3.04145	-2.05713
-3.31808	-3.04149	-2.05716
-3.32198	-3.04153	-2.05718
-3.32587	-3.04156	-2.05721
-3.32977	-3.0416	-2.05723
-3.33367	-3.04164	-2.05726
-3.33756	-3.04168	-2.05728
-3.34146	-3.04171	-2.05731
-3.34536	-3.04175	-2.05733
-3.34926	-3.04179	-2.05736
-3.35315	-3.04182	-2.05738
-3.35705	-3.04186	-2.05741
-3.36095	-3.0419	-2.05743
-3.36485	-3.04193	-2.05746
-3.36874	-3.04197	-2.05748
-3.37264	-3.04201	-2.05751
-3.37654	-3.04205	-2.05753
-3.38044	-3.04208	-2.05756
-3.38434	-3.04212	-2.05758
-3.38824	-3.04216	-2.05761
-3.39213	-3.04219	-2.05764

然后运行程序,运行结果如下:

在这里插入图片描述
如果有其他问题可以csdn搜索,或留言互相交流。

<think>好的,我现在需要帮助用户解决在Visual Studio 2017中集成和使用PCL(点云库)的问题。首先,用户的需求很明确,但可能需要详细的步骤指导。根据用户提供的引用内容,他们可能已经安装了一些依赖,比如OpenSSL和Visual Studio,但需要具体针对PCL的配置。 首先,我应该回想PCL安装和配置步骤。PCL是一个大型的库,依赖较多,比如Boost、Eigen、FLANN等。通常,在Windows上安装PCL可以通过预编译的二进制包,或者从源码编译。对于大多数用户来说,使用预编译的版本更简单,尤其是如果他们不熟悉CMake编译过程的话。 接下来,用户提到Visual Studio 2017,所以需要确认PCL版本是否兼容。PCL 1.8.x或1.9.x可能支持VS2017,但需要检查官方文档。比如,PCL 1.8.1可能需要MSVC 2015,而更高版本可能支持2017。用户可能需要下载对应的All-in-one安装包,并确保选择与VS2017兼容的版本。 然后,配置环境变量是关键步骤。安装PCL后,需要将PCL的bin目录添加到系统PATH,否则程序运行时可能找不到DLL文件。同时,用户提到的引用中提到了设置OPENSSL_CONF和添加OpenSSL的bin目录到路径,这可能与PCL的某些依赖有关,比如如果PCL使用了OpenSSL的功能,需要确保这些配置正确。 在Visual Studio的项目配置中,需要包含PCL的头文件目录,添加库目录,并链接所需的库文件。这一步需要详细说明如何在项目属性中设置包含目录、库目录,以及附加依赖项。用户可能需要逐个添加PCL的各个模块,比如io、common、filters等对应的lib文件。 测试部分,编写一个简单的读取点云文件的代码示例是必要的,这能帮助用户验证配置是否正确。同时,需要提醒用户注意点云文件的路径问题,以及是否需要下载测试数据,比如PCL提供的示例数据。 可能遇到的问题包括:DLL缺失,这通常是因为PATH没有正确设置;链接错误,可能是库路径或附加依赖项没有正确添加;或者版本不兼容,比如使用了为VS2015编译的库在VS2017中使用,导致运行时错误。需要提醒用户检查这些方面,并建议使用与编译器版本完全匹配的PCL预编译包。 此外,用户引用的内容提到了DDS实现,但PCL本身可能与DDS无关,这部分可能是用户混淆了不同库的配置。需要明确PCL的依赖项,并专注于相关的配置步骤。 最后,生成相关问题需要考虑用户在配置过程中可能遇到的后续问题,比如优化编译、处理特定错误,或者实际应用中的使用场景。这些问题可以帮助用户进一步探索PCL的功能和解决潜在问题。</think>### 在Visual Studio 2017中配置和使用PCL的步骤指南 #### 1. **安装PCL预编译库** - 从[PCL官方GitHub](https://github.com/PointCloudLibrary/pcl/releases)下载适用于Visual Studio 2017的All-in-one安装包(如`PCL-1.8.1-AllInOne-msvc2017-win64.exe`)。 - 运行安装程序,选择默认路径(例如`C:\Program Files\PCL 1.8.1`)并完成安装[^1]。 #### 2. **配置系统环境变量** - 添加PCL的`bin`目录到系统PATH: ``` C:\Program Files\PCL 1.8.1\bin ``` - 如果安装包包含第三方库(如OpenNI2),还需添加其`bin`目录到PATH: ``` C:\Program Files\PCL 1.8.1\3rdParty\OpenNI2\Tools ``` #### 3. **Visual Studio项目配置** - **包含目录**: ``` C:\Program Files\PCL 1.8.1\include\pcl-1.8 C:\Program Files\PCL 1.8.1\3rdParty\Eigen\eigen3 C:\Program Files\PCL 1.8.1\3rdParty\Boost\include\boost-1_64 ``` - **库目录**: ``` C:\Program Files\PCL 1.8.1\lib C:\Program Files\PCL 1.8.1\3rdParty\Boost\lib ``` - **附加依赖项**(根据模块选择): ``` pcl_common_debug.lib pcl_io_debug.lib pcl_visualization_debug.lib ``` *注意:Release模式使用不带`_debug`后缀的库。* #### 4. **测试代码示例** ```cpp #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> int main() { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); if (pcl::io::loadPCDFile<pcl::PointXYZ>("test.pcd", *cloud) == -1) { return -1; } return 0; } ``` *确保`test.pcd`文件存在于项目目录中。* #### 5. **常见问题解决** - **DLL缺失错误**:检查PATH是否包含所有PCL和第三方库的`bin`目录。 - **链接错误**:确认附加依赖项名称与库文件完全匹配,并区分Debug/Release模式。 - **Eigen头文件冲突**:优先使用PCL自带的Eigen版本,避免与其他库冲突。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一蓑烟雨荏平生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值