专栏首页点云PCLWindows下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的模块就勾选什么)

祝大家配置环境成功

本文分享自微信公众号 - 点云PCL(dianyunPCL),作者:点云PCL资源组

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 系列文章(二)| VS2013-MPI v7-静态编译-Boost1.6.1

    7. VS2013-Qt5.5.1-VTK7.0.0-Boost1.6.1-Qhull2015.2-FLANN1.8.4-Eigen3.2.8-OpenNI2....

    点云PCL博主
  • 基于点云强度的3D激光雷达与相机的外参标定

    本文提出一种新颖的方法,可以对3D lidar和带有标定板的相机进行全自动的外参标定,提出的方法能够从lidar的每一帧点云数据中利用强度信息提取标定板的角点。...

    点云PCL博主
  • Open3D版本和Ubuntu的关系

    Open3D是一个开源库,支持快速开发和处理3D数据。Open3D在c++和Python中公开了一组精心选择的数据结构和算法。后端是高度优化的,并且是为并行化而...

    点云PCL博主
  • Eclipse——编译已有工程出现“ No rule to make target”的解决方案

    【问题】:使用Eclipse打开已有工程后,编译出现如下错误“ No rule to make target”;

    Winter_world
  • Windows下编译64位CGAL

    CGAL的官网准备了压缩包和安装程序两种类型的的源代码,推荐使用安装程序包,因为其中自带了编译好的gmp和mpfr库。gmp和mpfr是CGAL的依赖库,如果自...

    charlee44
  • 视频流媒体平台EasyNVR是否可以编译树莓派版本?

    我们的流媒体平台支持编译成各种版本,能够满足不同用户的使用需要。为了确保编译后的各个版本没有错误,我们研发时也会进行测试,比如之前我们编译过视频管理平台Easy...

    EasyNVR
  • 1.3 运行C程序的步骤

    通过键盘向计算机输入程序,如发现有错误,要及时改正。最后将此源程序以文件形式存放在自己指定的文件夹内,文件用.c作为后缀。

    闫小林
  • .Net Micro Framework移植环境准备

    移植准备 .Net Micro Framework移植必须安装PK最新版本,可以从官网(http://netmf.codeplex.com/)下载,建议安装到C...

    大石头
  • 交叉编译学习笔记(一)——交叉编译和交叉工具链

    交叉编译学习笔记(一)——交叉编译和交叉工具链 最近看论文看的烦,又重新拾起之前没有完全完成的交叉编译,准备在网上找资料,好好研究一下。 参考链接: htt...

    剑影啸清寒
  • ARM交叉编译OpenCV错误总结

    ARM交叉编译OpenCV错误总结 最近尝试给两个ARM板子与用交叉编译配置OpenCV,为此查了很多资料,学了很多交叉编译的操作。 经过多次的交叉编译全都...

    剑影啸清寒

扫码关注云+社区

领取腾讯云代金券