vs2019+pcl1.10.1一劳永逸配置

2023-10-27

        不同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);
}

出现如下内容说明成功:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vs2019+pcl1.10.1一劳永逸配置 的相关文章

随机推荐

  • 洛谷P1023 税收与补贴问题

    题目描述 你是某家咨询公司的项目经理 现在你已经知道政府对某种商品的预期价格 以及在各种价位上的销售情况 要求你确定政府对此商品是应收税还是补贴的最少金额 也为整数 才能使商家在这样一种政府预期的价格上 获取相对其他价位上的最大总利润 总利
  • Win10+RTX3060配置CUDA等深度学习环境

    Win10 RTX3060机器学习环境配置 1 下载准备 2 下载安装CUDA和CUDNN 2 1 cuda和cudnn下载 2 2 cuda和cudnn安装 3 安装GPU版pytorch与TensorFlow 3 1 下载 3 2 安装
  • synchronized修饰static方法与非static方法的区别

    当synchronized修饰一个static方法时 多线程下 获取的是类锁 即Class本身 注意 不是实例 作用范围是整个静态方法 作用的对象是这个类的所有对象 当synchronized修饰一个非static方法时 多线程下 获取的是
  • iOS第三方支付集成-支付宝支付

    吐槽一下支付宝的文档和demo 文档真是找的我眼花缭乱 demo写的也是看的捉急 没有微信的简单明了 不过全部找到后 静下心来研究 也还是可以的 一 进入官方下Demo 看文档 工欲善其事必先利其器 先看下demo总不是坏处 也可以学习一下
  • 《Spark大数据技术与应用》肖芳 张良均著——课后习题

    目录 教材 知识汇总 课后习题 第一章 Spark概述 Spark的特点 Spark生态圈 Spark应用场景 第二章 Scala基础 匿名函数 Set Map map flatMap groupBy 课后习题 第三章 Spark编程 教材
  • Unity mlagent中强化学习ppo算法的参数怎么设置?

    Unity ML Agents的PPO算法参数可以通过设置ML Agents的Hyperparameter设置来调整 具体有 batch size discount gae lambda learning rate entropy coef
  • 2022尚硅谷阳哥docker篇之Portainer的监控三剑客

    docker compose yml文件 version 3 1 volumes grafana data services influxdb image tutum influxdb 0 9 restart always environm
  • 戴尔,更换固态硬盘后no bootable devices found

    注意 操作之前要备份 备份 备份 更换固态硬盘后 出现no bootable devices found 可以尝试一下这个方法 https www zhihu com question 299594649 answer 1565769605
  • 机器人学:(1)机器人基础

    1 1 机器人机构 机器人的机械机构由一系列刚性构件 连杆 通过链接 关节 联结起来 机械臂的特征在于具有用于保证可移动性的臂 arm 提供灵活性的腕 wrist 和执行机器人所需完成任务的末端执行器 end effector 机器人分为串
  • TS:etcd集群某个etcd实例启动报错(报cluster ID mismatch)-2022.10.13(已解决)

    目录 文章目录 目录 1 报错现象 2 排查过程 3 解决过程 1 尝试办法1 2 尝试办法2 4 总结 引用 关于我 最后 1 报错现象 在k8s高可用集群搭建过程中 关于etcd集群搭建是 报错了 自己当时环境如下 本次复用3个node
  • Java基础题

    面向对象程序设计期末复习之手写代码 Java编程基础 1 定义一个整型的长度为6的一维数组k 6 并将数组中元素k i 值初始化为i 然后 将元素k 3 打印出来 class test1 public static void main St
  • ISIS简介、NSAP与NET地址、Router-Id转换成NET地址

    2 0 0 ISIS简介 NSAP与NET地址 Router Id转换成NET地址 ISIS简介 IS IS Intermediate System to Intermediate System 中间系统到中间系统 1 该协议最初是ISO国
  • 逆向思维:卡通照片真人化

    之前PaddleGAN的趣味应用如雨后春笋般地出现 非常多的项目都是xxx动漫化 当时就有一个很普通的想法为什么大家都会去搞动漫化 这很可能是因为二次元文化的原因 又或者是动漫化的应用 商业价值 就突然蹦出一个想法 为什么没人弄动漫真人化呢
  • free vs delete简洁版

    free释放的是指针指向的内存 回归到操作系统的空闲内存链表中 之后还需要程序员手动将对应的指针赋值成为NULL 不然那个指针还在 并且还指向那个内存 delete是调用的是对应的new 的变量的析构函数 delete对应new delet
  • 出现 Request Entity Too Large问题的解决方法

    根据经验判断应该是上传文件大小被限制了 检查了应用配置是10M 把它设置成100M 重启服务也不能解决问题 原来我们的tomcat是通过nginx发现服务代理的 问题就出现nginx服务器上 原来nginx默认长传文件的大小是1M 可在ng
  • VMware安装系统时“无法创建新虚拟机: 不具备执行此操作的权限“的解决方案

    VMware安装系统时 无法创建新虚拟机 不具备执行此操作的权限 的解决方案 参考文章 1 VMware安装系统时 无法创建新虚拟机 不具备执行此操作的权限 的解决方案 2 https www cnblogs com kailugaji p
  • Python_爬虫复习_爬取直播间弹幕生成词云图

    爬取直播间弹幕 生成词云图 一 环境准备 安装相关第三方库 pip install jieba pip install wordcloud 二 数据准备 爬取对象 2021年5月23号 RNG夺冠直播间的弹幕信息 爬取对象路径 方式1 根据
  • 使用淘宝npm源安装electron7.x.x版本报错的问题

    windows 与 linux 一样 修改用户目录下 npmrc 文件 registry https registry npm taobao org sass binary site https npm taobao org mirrors
  • Unity Animation动画循环播放时卡顿、不连贯问题解决办法

    一 动画卡顿 如上图 可看到 当循环播放动画时 动画像瘸了似的 一会块 一会慢 总之就是不连贯 二 解决办法 打开该元素对应的Animation 然后选中下方的Curves动画曲线 在这里我们可以看到 该动画是一条S型曲线 故而播放速度才会
  • vs2019+pcl1.10.1一劳永逸配置

    不同pcl版本的安装配置有微小差异 低版本要稍微复杂一点 建议选择跟博客一样的配置 防止奇奇怪怪的错误 本次配置是windows vs2019 pcl1 10 1 1 下载pcl1 10 1 Release pcl 1 10 1 Point