PCL1.9.1并没有支持vs2015版本的exe版本,然后需要下载PCL的源码重新自己CMake编译出vs2015版本的
编译的目的:
1、得到支持vs2015的版本的PCL1.9.1
前期准备
1、下载PCL源码:https://github.com/PointCloudLibrary/pcl
2、下载安装版(主要是为了看下,第三方库的版本):https://github.com/PointCloudLibrary/pcl
boost:pcl1.9.1对应的是boost1.68版本的
vtk:pcl1.9.1对用的版本是8.1.0版本的
其他几个三方库不用管,直接用安装版中的库即可
3、下载第三方库
boost,那个版本均可,因为自己编译源码,版本无所谓,这里是1.69版本 https://www.boost.org/users/download/
VTK,这里是8.0版本 https://vtk.org/download/ (因为8.2版本在用的过程中总是有个弹窗很烦,就用了8.0的)
开始编译之前,看下下载的VTK源码的的文件结构:(注意下面的VTK版本是8.2的,编译8.0的一样的编译)
这里不像安装版中就会直接有include、lib、bin这样的文件夹的,我们编译的一个目的就是编译出这些文件夹来,下图是安装版的VTK文件夹结构:(我们编译的目的就是为了得到这样的几个文件)
开始编译VTK8.2.0
注意这里的OpenGL是选择2,实际上只有2可以选(和之前编译VTK8.0版本的时候不一样,8.0版本是选择的OpenGL)
注意上面的BUILD_TESTING不需要勾选,勾选后在编译的时候回非常之慢。
然后就是得到VTK.sln,vs2015打开Debug和Release下分别生成即可
编译Debug就生成了Debug版本的bin、cmake、include、lib、share五个文件,然后建一个Debug文件夹,放起来。
同理再次编译Release就再次得到Release版本的五个文件,建Release文件夹,放起来,这样就得到了两个版本的了,如下:
编译boost64位
编译64bit的boost库。执行bjam address-model=64即可。bjam address-model=64表示编译的是64bit的boost,而bjam address-model=32表示编译32bit的boost
生成的lib包就在stage目录下,然后我们需要就该lib包拿出来作为pcl的第三方依赖包,注意这里的lib下面包含了Debug和Release两个版本的
将目录下的boost作为include目录,和上面的lib包合在一起作为PCL的boost第三方依赖项
编译eigen3
第一次编译按如下做修改:
再次编译,编译成功
然后生成
然后vs打开工程,依次all_build,然后install即可,注意eigen不分debug和release版本的。
最后编译PCL1.9.1 vs2015版本
第一次编译报错,如下:
因为找不到eigen的路径,在cmake中设置上面编译好的路径即可,然后把要放编译好的pcl路径改下,如下:
表示,我需要将编译好的pcl放在这里,继续编译,然后报错:
很简单,需要配置pcl必须依赖的flann的路径,设置如下:
注意的是,第一个是include的路径,第二个是表示release版本的位置,第三个是debug的版本位置,继续编译,然后继续报错如下:
继续找不对的路径更改即可:(注意这里找呢,就主要找pcl依赖的那六个三方库,将位置改对了即可),改动的位置如下:不用管openNI,
至此完成一半。
然后open project,开始用vs编译,注意了,到这一步,其实我们的pcl里面是没有东西的,必须的vs编译之后东西就会出现在这里
先在debug下ALL_BUILD,然后INSTALL,
然后在release下重复一遍,这样就可以得到debug和release两个版本的pcl库了,而且是支持vs2015的。
注意问题
总结:因为我们编译PCL源码,而源码又需要几个三方库,所以一定要主要在CMake的时候,把对应的几个三方库都依次包含进来
1、boost路径
2、qhull路径
3、vtk路径
4、flann路径
5、openni2路径(其实这个不需要也可以的)
6、eigen路径
问题1:有时编译快完成的时候会报下面的错误:
其实这个GTEST文件并不需要,去掉即可
要是上面去掉后重新编译还是报错,就如下把勾选去掉。
问题2:boost路径的设置
下面是在配置中勾选的一些选择,作为配置参考(用到了什么PCL的模块就勾选什么)
祝大家配置环境成功
资源
三维点云论文及相关应用分享
【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法
3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)
PCL中outofcore模块---基于核外八叉树的大规模点云的显示
更多文章可查看:点云学习历史文章大汇总
SLAM及AR相关分享
往期线上分享录播汇总
点云PCL更多活动请查看:点云PCL活动之应届生校招群
扫描下方微信视频号二维码可查看最新研究成果及相关开源方案的演示:
如果你对本文感兴趣,请点击“原文阅读”获取知识星球二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!
以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除
扫描二维码
关注我们
让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。
分享及合作方式:群主微信“920177957”(需要按要求备注) 联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。
点一下“在看”你会更好看耶