首页 > Windows下PCL1.9.1配置(编译源码)

Windows下PCL1.9.1配置(编译源码)

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目标检测:MV3D-Net

三维点云分割综述(上)

3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)

win下使用QT添加VTK插件实现点云可视化GUI

JSNet:3D点云的联合实例和语义分割

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

SLAM综述之Lidar SLAM

基于鱼眼相机的SLAM方法介绍

往期线上分享录播汇总

第一期B站录播之三维模型检索技术

第二期B站录播之深度学习在3D场景中的应用

第三期B站录播之CMake进阶学习

第四期B站录播之点云物体及六自由度姿态估计

第五期B站录播之点云深度学习语义分割拓展

第六期B站录播之Pointnetlk解读

[线上分享录播]点云配准概述及其在激光SLAM中的应用

[线上分享录播]cloudcompare插件开发

[线上分享录播]基于点云数据的 Mesh重建与处理

[线上分享录播]机器人力反馈遥操作技术及机器人视觉分享

[线上分享录播]地面点云配准与机载点云航带平差

点云PCL更多活动请查看:点云PCL活动之应届生校招群

扫描下方微信视频号二维码可查看最新研究成果及相关开源方案的演示:

如果你对本文感兴趣,请点击“原文阅读”获取知识星球二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作方式:群主微信“920177957”(需要按要求备注) 联系邮箱:[email protected],欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

更多相关:

  • 下载gcc文档,第三章有详细的build options的介绍。 最近我用到2个关键的option 来定位问题,简单介绍一下: 1. -E: 只是进行预编译,不会编译和link。用于检查宏在代码中的展开是否符合预期; 2.--verbose: 开启verbose mode, 用于输出编译整个过程中的详细信息,可帮助查看build...

  • 浅谈GCC预编译头技术 文/jorge ——谨以此文,悼念我等待MinGW编译时逝去的那些时间。 其 实刚开始编程的时候,我是丝毫不重视编译速度之类的问题的,原因很简单,因为那时我用BASICA。后来一直用到C++ Builder,尽管Borland的广告无时无刻不在吹嘘其编译速度,我却从没有对这个问题上心过,因为心里根本没有“...

  • 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行...

  • 文章目录前言Makefile 编译流程1. 平台变量/环境变量的初始化。2. 编译需要的源码文件变量初始化。3. include 目录的设置。4. 编译的执行逻辑。问题记录1:可能的打包命令`ar` 失效问题5. 执行具体的编译指令问题记录2: jar 包编译...

  • 问题场景 我基于ATS 6.2.1社区版整合进一些插件,发现debug版本一直运行好好的,后来改为release版本(就是configure时不加--enable_debug)时,安装后显示下面的出错信息 [May 11 11:33:18.659] Server {0x2ab7cd116700} ERROR:

  • 重启一下系统,让内核版本变更生效...

  • FlashDevelop是基于.NET框架的开源软件,只能在Windows环境下面运行,相较于Flash CS和FlexBuilder, 它非常轻量级。FlashDevelop只是一个代码编辑器,而不是完整的IDE,在安装FlashDevelop同时,还应该安装Flex SDK和Flash Player Debug版本。之所以要研究这...

  • 我先后试用了longterm团队的2013版本,参见本博链接 http://blog.csdn.net/tao_627/article/details/17524597 和麒麟官网给出的这个改进版本,参见链接 http://www.ubuntukylin.com/applications/showimg.php?lang=cn...

  • ubuntu18.04操作系统版本先已支持在线的内核版本升级,到目前为止18.04发布版已经拥有三个小版本了1,2,3。 其中18.04.01和18.04.03版本,安装好之后默认的是4.15内核版本,但是默认支持在线安装4.18和5.0.0内核版本。 具体升级步骤如下: 升级前备份当前系统镜像确认外网可用,同时配置好任意一个国内...

  • 标题:Voxelized GICP for Fast and Accurate 3D Point Cloud Registration作者:Kenji Koide, Masashi Yokozuka, Shuji Oishi, and Atsuhiko Banno来源:分享者代码:https://github.com/SMRT-AI...

  • 点云PCL免费知识星球,点云论文速读。标题:LIC-Fusion 2.0: LiDAR-Inertial-Camera Odometry with Sliding-Window Plane-Feature Tracking作者:Xingxing Zuo1;2, Yulin Yang3, Patrick Geneva3, Jiajun...

  • 点云PCL免费知识星球,点云论文速读。标题:CMRNet++: Map and Camera Agnostic Monocular Visual Localization in LiDAR Maps作者:Daniele Cattaneo, Domenico Giorgio Sorrenti, Abhinav Valada来源:分享者...

  • 点云PCL免费知识星球,点云论文速读。标题:LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping作者:Tixiao Shan, Brendan Englot, Drew Meyers, Wei Wang, Carlo Ratti, and...

  • 前言CloudCompare是另一款开源且完善的点云处理软件,我们可以在这款软件的基础上,任意的设计成我们想要的界面,可以说是点云处理软件的最佳选择,所以我认为如果你是研究点云算法的可以使用PCL,GDAL,等其他库,如果你是做工程的需要点云的界面显示,那么cloudCompare就是不二选择,当然如果是简单的界面使用PCL和QT也...