原文首发于微信公众号「3D视觉工坊」:传送门。
前言
最近主要在研究点云后处理模块,虽然一直在丰富完善我们自己编写的点云库,但是对于PCL的源码,非常具有参考价值。因而,对于PCL的源码编译工作,显得格外重要。
借助CSDN博文、以及朱德海主编的《点云库PCL学习教程》这本书,这里,我也是边进行编译,同步将编译过程中出现的问题以及编译方法总结分享给大家,如有感兴趣的小伙伴,欢迎多多交流。
一 编译依赖库准备工作
PCL从源码搭建开发环境是指需要自行编译链接第三方库,然后再编译安装PCL库。
为了编译PCL库的每一个组件,需要下载并编译一系列PCL依赖的第三方库。
1、 Boost库,用于共享指针和线程操作,必需。
2、 Eigen库,用于矩阵、向量等数据操作,必需。
3、 FLANN库,在kd树模块中用于快速近邻搜索,必需。
4、 QHull库,用于凸或凹曲面的外包求解,可选。
5、 VTK(Visualization ToolKit)库,用于在可视化模块中用于3D点云渲染和可视化,必需。
以上的几个库为我接下来将要依次编译的库,除此以外,根据需要,PCL所依赖的其他外部库还有如下:
-
Googletest库,用于建立测试单元,可选。
-
OpenNI版本,用于与OpenNI兼容的设备获取点云,可选。
-
QT库,用于UI开发,可选。
-
MPI库,用于集群上高性能计算,可选。
注:本次编译我所使用的外部库版本依次如下:①boost_1_65_1;②Eigen3.0;③FLANN_1.9.1;④QHull-2015.2;⑤VTK-8.2.0。
对于以上的库,大家可以依次可以前往对应的官网进行下载,此处提供上述我所使用的外部库下载链接,在公众号【3D视觉工坊】后台回复「PCL外部库」,即可获得百度云下载链接。
我们将上述下载好的外部库,存放到E:\PCL\PCL_extern_libs目录下,如图:
image好的,闲话少说,让我们一起开干吧。
二 PCL1.8.1源码编译
第一步:boost库的编译
首先boost_1_65_1目录下的文件如下图所示:
image2.1 步骤1:打开VS2015开发人员命令提示符,运行bootsrap.bat.
image
image经过上述步骤之后,boost_1_65_1目录下的文件如下图所示。
image2.2步骤2:生成lib
确认自己的VS版本的工具集。
名称|版本
Visual Studio 2017——14.1
Visual Studio 2015——14.0
Visual Studio 2013——12.0
运行b2 toolset=msvc-14.0 address-model=64—stagedir=”./VS2015”(也是在VS2015开发人员命令提示符下),编译过程较长,请耐心等待。
image2.3 步骤3:使用boost库(验证编译的正确性)
第一步:新建一个工程test_boost,右键属性。
image第二步:设置包含目录和附加库
image image三步:调用boost库函数,测试其正确性
image注意:一定要使用对应版本的VS来生成lib。
image程序运行结果表明,boost库编译正确。
荐读
回复关键词——知识星球,前往【3D视觉工坊】知识星球
网友评论