vs2019+pcl1.10.1一劳永逸配置

        不同pcl版本的安装配置有微小差异,低版本要稍微复杂一点,建议选择跟博客一样的配置,防止奇奇怪怪的错误。本次配置是windows + vs2019 + pcl1.10.1

1.下载pcl1.10.1

Release pcl-1.10.1 · PointCloudLibrary/pcl · GitHub

 这里没有选择源码编译,cmake稳定,但是复杂一点

2.解压安装

 这里选择将pcl添加到环境路径(大概率会报错,没关系,后面如果报错可以手动添加)

然后安装位置是可以自己选的,但是你得自己找得到 ,后面一路点击下一步,安装就好。

3.添加环境路径

        刚刚虽然选择了将pcl添加到环境路径,但是大概率会报一个错:path too long installer unable to modify path。问题不大,叉掉就好,接下来手动添加一下:

       ①  打开高级系统设置,点击环境变量

       ②  下方系统变量中先添加一个名为Pcl_Root的变量,路径是你安装的pcl位置

         ③ 然后点击Path,添加如下变量。这样子就把路径分为两部分,就不会too long了

4.vs2019配置pcl

        到这里pcl基本上就安装好了,不过想要在vs里面使用,还需要配置一番。这里提供一种一劳永逸的配置方法,不用每次新建一个项目还要重复的配置。

       ①  首先打开vs,新建一个空项目,点击视图->其他窗口->属性管理器 

        ②  在右侧选中这个Microsoft.Cpp.x64.user,并且右键点击它进入属性

 这里顺便说一下,我自己配置时,没有出现这个Microsoft.Cpp.x64.user。是因为缺失了一个文档,下载以下放到对应的位置即可。这里给出一篇参考博客(5条消息) 解决vs2019属性管理器里面没有Microsoft.Cpp.x64.user_vs2019属性窗口没东西_WangSaLe的博客-CSDN博客

         ③ 进入属性页后,首先在vc++中配置包含目录和库文件(不要完全照抄我的,因为我安装的pcl跟你的可能不一样,需要找到对应的文件位置)

         包含目录其实就是你安装的pcl中一系列include文件位置,如下:

D:\3dparty\PCL 1.10.1\3rdParty\Boost\include\boost-1_72
D:\3dparty\PCL 1.10.1\3rdParty\OpenNI2\Include
D:\3dparty\PCL 1.10.1\3rdParty\VTK\include\vtk-8.2
D:\3dparty\PCL 1.10.1\3rdParty\FLANN\include
D:\3dparty\PCL 1.10.1\3rdParty\Eigen\eigen3
D:\3dparty\PCL 1.10.1\include\pcl-1.10

        只包含到include也是没有问题的,Eigen特殊一点,没有include,但也要包含。

        库目录其实就是一系列lib文件的位置,如下:

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

        ④配置输入

 这里其实就是将lib文件夹下的.lib文件添加过来,但是请注意,因为pcl分为release版本和debug版本,但两个的lib文件是放在一起的,所以不能全部添加过来,否则在后面在读取pcd文件的时候会报错!!!

csdn上有很多脚本可以提取相应的lib文件名字,不用自己一个个复制粘贴来添加,搜索pcl添加.lib文件即可。这里贴出pcl1.10.1,debug模式下的附加依赖项(如果下载的pcl版本跟我一致,直接复制粘贴过去就好了)

OpenNI2.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
vtkImagingColor-8.2.lib
vtkImagingCore-8.2-gd.lib
vtkImagingCore-8.2.lib
vtkImagingFourier-8.2-gd.lib
vtkImagingFourier-8.2.lib
vtkImagingGeneral-8.2-gd.lib
vtkImagingGeneral-8.2.lib
vtkImagingHybrid-8.2-gd.lib
vtkImagingHybrid-8.2.lib
vtkImagingMath-8.2-gd.lib
vtkImagingMath-8.2.lib
vtkImagingMorphological-8.2-gd.lib
vtkImagingMorphological-8.2.lib
vtkImagingSources-8.2-gd.lib
vtkImagingSources-8.2.lib
vtkImagingStatistics-8.2-gd.lib
vtkImagingStatistics-8.2.lib
vtkImagingStencil-8.2-gd.lib
vtkImagingStencil-8.2.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
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

        ⑤最后需要配置一下预处理器

这个预处理器可以在这里配置,也可以在具体单个项目中配置,是为了防止一些警告,将以下内容复制粘贴过去即可:

_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING
_DEBUG
_CONSOLE
NOMINMAX
BOOST_USE_WINDOWS_H

        ⑥结束后别忘了点击应用和确定,否则白干了!然后关闭vs,重新新建一个项目,用以下代码测试:

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>

int
main()
{
	pcl::PointCloud<pcl::PointXYZ> cloud;

	// Fill in the cloud data
	cloud.width = 5;
	cloud.height = 1;
	cloud.is_dense = false;
	cloud.resize(cloud.width * cloud.height);

	for (auto& point : cloud)
	{
		point.x = 1024 * rand() / (RAND_MAX + 1.0f);
		point.y = 1024 * rand() / (RAND_MAX + 1.0f);
		point.z = 1024 * rand() / (RAND_MAX + 1.0f);
	}

	pcl::io::savePCDFileASCII("test_pcd.pcd", cloud);
	std::cerr << "Saved " << cloud.size() << " data points to test_pcd.pcd." << std::endl;

	for (const auto& point : cloud)
		std::cerr << "    " << point.x << " " << point.y << " " << point.z << std::endl;

	return (0);
}

出现如下内容说明成功:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值