如何通过源码编译方式安装PCL
对于很多想学习PCL的同学而言,往往会被如何安装困扰很长时间。我就是这其中的一员,为了不让大家在安装问题上浪费太多时间,我决心写下这篇小小的随笔,希望对大家有所帮助。
-
下载需要的软件包
- Visual Studio [我用的是VS2012,所以这里以这个版本作为基础进行介绍]
- cmake-3.1.0(二进制安装包)
- PCL-1.8.0(源码)
- vtk-6.2.0(源码)
- boost-1.58.0(源码)
- eigen-3.2.5(源码)
- flann-1.8.4(源码)
- qhull-2012.1(源码)
- openni2(OpenNI-Windows-x64-2.2.msi二进制安装包)
请不要问我,这些软件从哪里下载。请到相应的官网去下载吧,利用google,很好找的。这里只是列出了必须安装的一些组件,如果你使用PCL进行开发涉及到了诸如cuda等组件,请自行下载,并参照后面的步骤进行安装。
-
软件的编译与安装
在开始介绍如何安装之前,我先向大家介绍一下我在配置安装时的目录结构:
在D:\pcl\目录下存放所有的源代码文件;在D:\programs\pcl_suites\下存放所有的编译好的项目文件和最终构建的类库文件[编译好的文件放在xxx-x.y.z文件夹(如flann-1.8.4)下;构建的类库文件放在xxx-install文件夹(如flann-install)下]-
VS和cmake的安装
无限下一步即可,VS2010、VS2012、VS2013均可,而cmake版本要大于2.8.6,此处不再赘述。 -
openni2的安装
同样是无限下一步即可,请注意自定义安装目录 -
vtk、eigen、flann、qhull的编译
使用cmake-gui,将源代码目录和编译结果的存放目录天道指定位置,运行Configure,将不必要的编译选项去除,如果没有错误的话,点击Generate即完成编译。 -
vtk、eigen、flann、qhull的安装
双击x.sln解决方案文件,即可打开由cmake生成的VS工程文件,对ALL_BUILD进行“生成解决方案操作”。当全部生成后,对INSTALL进行“生成解决方案操作”即可完成安装。 -
boost的编译
打开VS开发者命令提示符窗口,切换到boost源码的根目录下,在命令行执行.\boostrap.bat命令即可完成编译。 -
boost的安装
在VS开发者命令提示符窗口,切换到boost源码的根目录,在命令行执行,\b2 install --prefix=D:\programs\pcl_suites\boost-install\即可完成安装。 -
PCL的编译
使用cmake-gui,将源代码目录和编译结果的存放目录填入指定位置,点击Configure。选中cmake的Advanced和Grouped选项,对显示有“xxx-NOTFOUND”的项目根据组件的存放位置进行设定。其中boost、flann、vtk、eigen为必须配置的选项,否则会报错。配置没错误后,点击Generate即可完成编译。
tips:由于eigen3x版本变化较大,因此需要手动将源代码中的FindEigen3.cmake文件放在cmake的D:\programs\cmake\share\cmake-3.1\Modules目录下,否则会报错。 -
PCL的安装
使用VS打开cmake生成的PCL.sln,对ALL_BUILD进行生成解决方案操作,该过程比较长(我的机器大概跑了将近一个小时),请耐心等待。而后,对INSTALL进行生成解决方案操作,即可完成安装。
-
-
运行第一个小例子
这里使用到的例子是pcl官网上的passthrough的滤波实例,大家可以去 http://pointclouds.org/documentation/tutorials/passthrough.php#passthrough 下载。
在VS中进行编译运行时,有如下几个注意事项:
- 在项目属性->配置属性->VC++目录中,对包含目录和库目录进行配置。包含目录要添加pcl、boost、eigen的include路径;库目录要添加pcl的lib路径
- 在项目属性->配置属性->C/C++->命令行中,添加-D_SCL_SECURE_NO_WARNINGS选项。
- 在项目属性->配置属性->链接器->输入->附加依赖项中将pcl安装后产生的所有.lib文件的路径添加至此。
- 在项目的Debug目录下放置所有pcl安装后产生的dll文件。
希望大家能快速装好PCL,在图像处理领域勇攀高峰!加油_