浑浑噩噩半年时间,终于不得不干点和机器人有关的东西。ICRA和IROS推荐的三维图形库—点云库,几乎成了机器人视觉算法的标配。

参考了几篇文章,最后终于配置成功。

下面是文章地址:

这个有点看头,累积较多,不过还没仔细体会:http://blog.csdn.net/chen_nan/article/details/7055651?reload

这个文章较短,不过说出了一小点有用的东西,若是看过介绍论文,可不必看:http://qing.blog.sina.com.cn/1455173150/56bc2e1e330005pk.html

(一):安装软件包和库

安装好VS2010后,安装一次性安装包,下载地址:http://www.pointclouds.org/downloads/windows.html

准备工作:

a)  获取All in one安装包,PCL提供了配置为Visual Studio 2010的 32位和64位、 Visual Studio 2008的32位和64位下的该安装包,该包包含了PCL中所使用全部第三方编译包,除了Qt编译包;

b) 获取All in one包对应的PDB文件包,该包用于后期单步调试时使用;

c)  获取PCL源码包;

d)  安装开发工具Visual Studio 2010或Visual Studio 2008和cmake开发工具,需要cmake版本大于2.8.3,主要考虑到PCL中用到了高版本的一些宏定义,低版本不兼容。

注意:http://pointclouds.org/downloads/windows.html可下载all in one安装包和其对应的PDB文件包,源码包可在http://pointclouds.org/downloads/处下载。以上所有包都在参考文献【1】提供的光盘中含有。如果用户安装了RGBD相关设备驱动与中间件,则需要卸载OpenNI相关的驱动、中间件,避免与all in one提供的驱动与中间件冲突,如果没有,忽略此项,OpenNI、RGBD相关的内容后续章节IO有介绍。图1所示,为准备工作最终需要的文件。

1.完成准备工作将会有三个包

安装:

安装过程很简单(笔者配置为Visual C++ 2008 Express Edition、Cmake 2.8.5、32位系统),点击安装上一步所准备的文件PCL-1.5.1-AllInOne-msvc2008-win32.exe。运行如图2到8,按照提示默认安装即可,如果需要改变安装路径到非C:盘,后面cmake配置时需要自行设置各个第三方库的路径以及PCL头文件与链接库路径。

2欢迎使用界面与PCL许可界面

3安装选项与安装路径界面

4选择开始菜单界面与安装组建库选择界面

5安装组建界面展开图示

6安装OpenNI界面

7安装Primesense Sensor驱动界面

8完成界面与最终安装好的截图

9第三方库文件夹

10  pdb文件夹中内容

(二):编译库文件:

Windows下从预编译包搭建PCL开发环境,转自官方:http://www.pclcn.org/study/shownews.php?lang=cn&id=33

建立两个文件,源程序文件project_inliers.cpp和cmake 配置文件CMakeLists.txt内容拷贝链接http://pointclouds.org/documentation/tutorials/project_inliers.php#project-inliers中对应的代码及Cmakelists的代码(此处也可以从参考文献【1】中test文件拷贝对应的文件),放在同一文件夹source下,在source同一目录下建立camke-bin文件夹。

11 测试需要建立的文件

打开cmake,设置源文件目录与编译目录,如图12所示。

12设置cmake需要的路径

13 camke中选择对应的编译器

14 配置与生成

选择对应的编译器,如图13所示,笔者选择对应visual studio 9 2008,点击finish,再点击配置与生成,如图14所示,即可得到工程文件,如图15所示。

15生成的工程文件

16编译工程文件

17 测试exe文件运行结果

到此就完成了PCL在windows上的开发环境搭建,用户可以自行体验官方网站提供的大量实例代码了,如果用户只是使用稳定的PCL版本。

(三):搭建开发环境:

.安装完毕后就测试一下PCL的效果吧,要注意项目对应的包含目录、库目录、库文件(LIB)和运行环境(DLL)。

用http://www.pointclouds.org/documentation/tutorials/pcl_visualizer.php#pcl-visualizer上面的例程试一试,新建工程,粘贴代码……

在包含目录下添加:

C:\Program Files\PCL 1.5.1\3rdParty\Boost\include;
C:\Program Files\PCL 1.5.1\3rdParty\Eigen\include;
C:\Program Files\PCL 1.5.1\3rdParty\Flann\include;
C:\Program Files\PCL 1.5.1\3rdParty\Qhull\include;
C:\Program Files\PCL 1.5.1\3rdParty\VTK\include\vtk-5.8;
C:\Program Files\OpenNI\Include;
C:\Program Files\PCL 1.5.1\include\pcl-1.5;

(对应自己机子上PCL的位置,如果为了CMAKE方便很多会放在根目录下。即C:\PCL)

在库目录下添加:

C:\Program Files\PCL 1.5.1\3rdParty\Boost\lib;
C:\Program Files\PCL 1.5.1\3rdParty\Qhull\lib;
C:\Program Files\PCL 1.5.1\3rdParty\Flann\lib;
C:\Program Files\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8;
C:\Program Files\PCL 1.5.1\lib;
C:\Program Files\OpenNI\Lib;

在附加依赖项上添加:

opengl32.lib
pcl_kdtree_debug.lib
pcl_io_debug.lib
pcl_search_debug.lib
pcl_segmentation_debug.lib
pcl_range_image_border_extractor_debug.lib
pcl_apps_debug.lib
pcl_features_debug.lib
pcl_filters_debug.lib
pcl_visualization_debug.lib
pcl_common_debug.lib
flann_cpp_s-gd.lib
libboost_system-vc100-mt-gd-1_47.lib
libboost_filesystem-vc100-mt-gd-1_47.lib
libboost_thread-vc100-mt-gd-1_47.lib
libboost_date_time-vc100-mt-gd-1_47.lib
libboost_iostreams-vc100-mt-gd-1_47.lib
openNI.lib
vtkalglib-gd.lib
vtkCharts-gd.lib
vtkCommon-gd.lib
vtkDICOMParser-gd.lib
vtkexoIIc-gd.lib
vtkexpat-gd.lib
vtkFiltering-gd.lib
vtkfreetype-gd.lib
vtkftgl-gd.lib
vtkGenericFiltering-gd.lib
vtkGeovis-gd.lib
vtkGraphics-gd.lib
vtkhdf5-gd.lib
vtkHybrid-gd.lib
vtkImaging-gd.lib
vtkInfovis-gd.lib
vtkIO-gd.lib
vtkjpeg-gd.lib
vtklibxml2-gd.lib
vtkmetaio-gd.lib
vtkNetCDF-gd.lib
vtkNetCDF_cxx-gd.lib
vtkpng-gd.lib
vtkproj4-gd.lib
vtkRendering-gd.lib
vtksqlite-gd.lib
vtksys-gd.lib
vtktiff-gd.lib
vtkverdict-gd.lib
vtkViews-gd.lib
vtkVolumeRendering-gd.lib
vtkWidgets-gd.lib
vtkzlib-gd.lib

这里要注意PCL引用到的其他库文件一定要加进去,VTK的库很多,而且依赖关系我看得很乱,所以为了方便就全加进去了。

如果没有加完整,很多信息提示错误的,之前忘了加一个什么库,导致很多error LNK2019,还让我重装了很多次……

注意库要对应debug和release版,debug后面一般都有-gd或者_debug的,看看就能分出来了。对应错了还会有error LNK:

error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in  XXXX.......

这时应该可以看到成功生成的信息了:

别着急运行,会发现还没做完的。

我们还要把对应的dll加到环境中,可以直接把用到的那些dll放到应用程序搜索到的位置,如cpp对应的目录。(=_=!好笨的方法,不过我就是这样做的……)或者是把dll的目录设置到环境中去(在安装ALL IN ONE 时已经自动添加)

Tips:

对于pcl_range_image_border_extractor_debug.lib无法找到问题,先删除包含之,编译通过.

PCL:全程详解 VS2010+PCL配置相关推荐

  1. redhat5 oracle11g安装全程详解,RedHat5+Oracle11g安装全程详解.doc

    RedHat5+Oracle11g安装全程详解 一.安装Linux 设备环境:Vmware虚拟机,操作系统为Redhat 5(32位) 使用Linux图形化界面安装,没什么可说的,主要是分区要合理,o ...

  2. 飞越650四轴无人机安装全程详解(多图)

    飞越650四轴无人机安装全程详解(多图) 本文根据自己的安装实际过程,总结了开箱后一个比较合理的650四轴无人机安装顺序,以及各个步骤的注意事项,主要内容包括: 系统基本配置 机架安装 安装机臂与机架 ...

  3. 【教程】详解VS2010安装流程

    [教程]详解VS2010安装流程 原文网址链接为:http://jingyan.baidu.com/article/4e5b3e195b838991901e24e5.html VS2010全称&quo ...

  4. Git客户端图文详解如何安装配置GitHub操作流程攻略

    Git客户端图文详解如何安装配置GitHub操作流程攻略 软件应用 爱分享  3个月前 (08-15)  8896浏览  0评论 Git介绍 分布式 : Git版本控制系统是一个分布式的系统, 是用来 ...

  5. mvc ajax提交html标签,Mvc提交表单的四种方法全程详解

    Mvc提交表单的四种方法全程详解 2019-01-05 编程之家 https://www.jb51.cc 编程之家收集整理的这篇文章主要介绍了Mvc提交表单的四种方法全程详解,编程之家小编觉得挺不错的 ...

  6. ActiveMQ配置详解之如何配置自动重新连接

    2019独角兽企业重金招聘Python工程师标准>>> ActiveMQ配置详解之如何配置自动重新连接 博客分类: MQ 这从这一篇开始,将讲解在activeMQ中的相关配置.由于a ...

  7. vue.js2.0 java_详解vite2.0配置学习(typescript版本)

    介绍 尤于溪的原话. vite与 Vue CLI 类似,vite 也是一个提供基本项目脚手架和开发服务器的构建工具. vite基于浏览器原生ES imports的开发服务器.跳过打包这个概念,服务端按 ...

  8. K8SPod详解之pod配置

    K8SPod详解之pod配置 Pod定义 Pod配置 pod.spec.containers 基本配置 镜像拉取 启动命令 环境变量 端口设置 资源配额 每个pod中都可以包含一个或者多个容器,这些容 ...

  9. 单臂路由的详解及简单配置

    单臂路由的详解及简单配置 前言 1.什么是单臂路由 2.什么是逻辑子接口 3.单臂路由的配置 4.单臂路由的优缺点 1.什么是单臂路由 单臂路由(router-on-a-stick)是指在路由器的一个 ...

最新文章

  1. 36晋级12第五场:冯志刚决胜入围(节目视频)
  2. python爬虫教程视频-13天搞定Python分布爬虫
  3. 耐寂寞谋定未来-农业大健康·国情讲坛:乡村振兴守公益心
  4. uploadhandler.php,多个WordPress主题’upload-handler.php’任意文件上传漏洞
  5. 10个顶级的CSS3代码生成器
  6. Python | 程序从列表中删除重复的元素
  7. 对!这就是你要的pandas练习题(❤️❤️)
  8. 纽约时报:昔日王者Digg能否实现中兴?【独家】
  9. Windows下Node.js安装及环境配置
  10. 滚动吸顶效果--四种方式实现
  11. pla3d打印材料密度_3D打印材料:透明PLA材料
  12. 大数据应用之 --- apache doris 基于ssb测试
  13. html实现轮播图--小圆圈呈中间大两边小的样式
  14. 电大计算机科学与技术专业论文,国家开放大学计算机科学与技术专业毕业设计(论文)要求...
  15. 【python】N的多次方
  16. vue中a标签实现带header的下载
  17. python selenium处理iframe和弹框(一)
  18. ATL之深入浅出书评(潘爱民)
  19. springboot_游戏虚拟物品交易平台
  20. 蓝库云|如何利用零代码工具创建人力资源管理系统

热门文章

  1. Redis Sentinel 配置文件
  2. 公用技术——设计模式19——行为型模式——备忘录模式——待补充
  3. libvirtError: 无效参数:could not find capabilities for domaintype=kvm
  4. windows phone开发第一步:搭建软件开发环境
  5. 关于[[NSNotificationCenter defaultCenter] addObserver不remove后续又收到通知crash问题
  6. 【转】Linux 静态库与共享库的使用
  7. Linq to sql 消除列重复 去重复
  8. C#下载文件(可显示进度)的方法实现
  9. Integer.highestOneBit(int i)方法的作用与底层实现
  10. centos7 ModuleNotFoundError: No module named 'users'