背景:为什么要编译PCL源码,一方面对于PCL类里面一些不对外开发的成员变量,有时又急需使用到,如果可以编译源码,不妨将其改成public,当然也可以进行其它方面的更改,但这也取决于个人的编码能力。另一方面我们有时对某一类算法感兴趣,尤其是实现该算法过程中可能涉及到很多我们认为有用的工具,那么源码就提供了阅读并理解的机会。如果我们一直只是简单的调用PCL的相关接口,那么可不可以这么理解呢,我们就好比是一个搬运工,创造力几乎为零。但是这种能力先别说是核心竞争力,竞争力也不够强吧(估计面试官也不大会感兴趣)!当然博主目前的能力与水平也仅限搬运工级别的,所以才感觉到创造力的难能可贵,同时也是我要写这篇博客的重要原因了。
准备工具:
1.pcl1.8的安装包: https://pan.baidu.com/s/1c1sqoQO#list/path=%2F (由于没有上传到百度云,这里借用一下他人的下载链接)
2.pcl1.8.1的源码: https://github.com/PointCloudLibrary/pcl/tree/pcl-1.8.1
数据1的作用,主要是为了提供pcl编译所需的三方库。正常安装即可
安装后的文件夹是这样的。
然后打开cmake工具,把源码里的cmake文件拖拽到制定位置:如图
然后重要的一步就要到了:勾选上Group 、advanced选项。然后点击Add Entry
其中value的值就是,PCL的安装路径,可以参照我的路径
F:PCL 1.8.03rdPartyVTKin;
F:PCL 1.8.03rdPartyBoost;
F:PCL 1.8.03rdPartyQhullin;
F:PCL 1.8.03rdPartyFLANNin;
F:PCL 1.8.03rdPartyEigeneigen3;
G:Qt5.6_64_real5.6msvc2013_64;
然后就可以点击configure ->generate。等待一会,就可以打开工程了。至此基本上编译成功。
建议:由于pcl安装包可能是vs13 64位。这个版本的可能多一点。但是不管哪个版本,我们在cmake过程中尽量要保持版本一致,不然无法编译成功。
编译成功