浑浑噩噩半年时间,终于不得不干点和机器人有关的东西。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. IntelliJ IDEA配置tomcat【全程详解】

    相关博客:IntelliJ IDEA创建Maven+SSM+Tomcat+Git项目[全程详解] 创建好web项目后,需要将项目部署到Tomcat中运行. 接下来,图文解析IntelliJ IDEA如 ...

  2. QAV250四轴穿越机安装全程详解(多图)

    QAV250四轴穿越机安装全程详解 最近团队准备使用轻型穿越机QAV250做实验,本文记录了QAV250的安装过程,整理了开箱后较合理的安装顺序,以及各个步骤的注意事项,希望对有需要的朋友有所帮助.主 ...

  3. IntelliJ IDEA创建Maven+SSM+Tomcat+Git项目【全程详解】

    记录一下整个创建项目的过程,其中包括: Maven 项目创建: SSM配置文件: Tomcat配置: Git配置: Git忽略文件Ignore配置: 图文讲解,通俗易懂,易上手. 一.创建Maven ...

  4. Nginx主配置参数详解,Nginx配置网站

    1.Niginx主配置文件参数详解 a.上面博客说了在Linux中安装nginx.博文地址为:http://www.cnblogs.com/hanyinglong/p/5102141.html b.当 ...

  5. mybatis 代码生成器(IDEA, Maven)及配置详解(部分配置你应该不知道)

    目录 1 创建代码生成器 1.1 创建Maven项目 1.2 配置 generator.xml 1.3 配置 pom.xml 1.4 使用及测试 2 XML 配置详解 2.1 优先 2.2 官网没有的 ...

  6. 详解Tomcat核心配置、http协议

    Tomcat服务器 Tomcat配置与部署(IDEA) https://www.cnblogs.com/gonghr/p/14731266.html Tomcat手工创建和打包第一个Web工程 在ap ...

  7. 详解mysql如何配置远程链接,解决各种连接问题

    在服务器上面我们经常需要去使用mysql,有些童鞋刚刚配置好了服务器,想在本地的一些图形化软件去连接mysql得到更直观的表格显示,此时很可能不允许连接,为了探究为什么连接失败,在这里我会对mysql ...

  8. LINUX磁盘分区、格式化、挂载、卸载全程详解

    1.一切皆文件 Linux系统有一个理念:“一切皆文件”,所以计算机的硬件在linux中也是以“文件”的形式存在于/dev目录中.   图为CentOS 6.5系统中/dev目录的部分内容.不同的计算 ...

  9. Jenkins进阶系列之——12详解Jenkins节点配置

    2014-03-02:修正对于lable标签的理解.(1.532.1版本已经给出了官方解释) 2013-12-22:添加JNLP端口修改,修改了一些错误. Jenkins有个很强大的功能:分布式构建( ...

随机推荐

  1. eas之EntityViewInfo对象mainQuery中查询条件

    EntityViewInfo对象mainQuery中查询条件:  添加查询字段:(Sql语句中的selectz子句内容)    SelecttorItemCollection sic=new Sele ...

  2. luogu 2483 K短路 (可持久化左偏树)

    题面: 题目大意:给你一张有向图,求1到n的第k短路 $K$短路模板题 假设整个图的边集为$G$ 首先建出以点$n$为根的,沿反向边跑的最短路树,设这些边构成了边集$T$ 那么每个点沿着树边走到点$n ...

  3. 解决windows文件在linux系统中显示乱码的问题

    问题: 在Windows下用matlab写的代码(.m)到Linux(centos)下,注释的中文全是乱码. 原因: Windows下默认使用的是GB2312编码,Linux默认使用的是UTF-8. ...

  4. Golang - 爬虫案例实践

    目录 Golang - 爬虫案例实践 1. 爬虫步骤 2. 正则表达式 3. 并发爬取美图 Golang - 爬虫案例实践 1. 爬虫步骤 明确目标(确定在哪个网址搜索) 爬(爬下数据) 取(去掉没用 ...

  5. Spring Boot-整合redis(六)

    redis安装 参考:https://www.cnblogs.com/LQBlog/p/9214517.html 单机版 1.添加pom依赖 <!-- Spring Boot Reids 依赖 ...

  6. mongodb--游标与链式查找

    一:游标 [能不用游标的地方就不要用游标,它是占用数据库资源的] find操作是返回一个游标,为了方便我们查看结果,mongodb shell会自动迭代结果.[游标也是递增的] 2.迭代结果的两种方式 ...

  7. C#--in逆变-out协变

    MSDN上的解释 协变保留兼容性,逆变与之相反 in的使用 个人理解:就是表明泛型就是可以逆变的(逆变就是大变小) // Contravariant interface. interface ICon ...

  8. 搭建单机CDH环境,并更新spark环境

    搭建单机CDH环境,并更新spark环境 1,安装VMWare Player,http://dlsw.baidu.com/sw-search-sp/soft/90/13927/VMware_playe ...

  9. mysql稳定的版本号选择及下载说明(2014-11-10)

    怎样选择新稳定的版本号       mysql的版本号大概能够分为Alpha.Beta.GA. GA版即mysql官方公布的稳定版本号. 怎样在官方下载Mysql        能够通过http:// ...

  10. MVC地区多级联动扩展实现(非递归形式)

    MVC前台界面调用方式如下: @Html.AreaDropDownList(, string.Empty) 参数说明: 第一个参数控件的名称: 第二个参数选中的地区编码: 第三个参数地区层级: 第四个 ...