配置PLADE环境记录

 

https://github.com/chsl/PLADE

该篇文章的配置花了我两周的时间

记录下配置踩过的坑

先总结一句配环境的理论,在VS下配置PCL环境,对方用的啥平台就用啥平台,用的啥版本的库就用啥版本的库。开始我图方便用VS2017配置,结果还是得安装VS2013,,配了OpenCV2.4.13和PCL1.8.1,最后还是老老实实按照他用的老版本Opencv2.4.10和PCL1.8.0配置。

目录

一、踩坑记录

1.OpenCV2.4.13+PCL1.8.1+VTK8.0,编译程序报错:找不到vtk-core7.0.dll

2.源码编译VTK7.0, 解决了vtk7.0core.dll的问题

3.编译PCL1.8.0

4.安装VS2013编译

5.试用VS2012平台编译

二、配置PLADE平台教程

环境:

1.安装VS2013

2.安装OpenCV2.4.10

3.配置PCL1.8.0



一、踩坑记录

1.OpenCV2.4.13+PCL1.8.1+VTK8.0,编译程序报错:找不到vtk-core7.0.dll

       首先是配置了OpenCV2.4.13和PCL1.8.1以及源码编译VTK8.0,编译程序报错:找不到vtk-core7.0.dll。因为PCL1.8.1对应的VTK8.0的版本,这个开始以为改一下它程序,就可以调用VTK8.0的版本,但是调试了好久没找到修改的地方,于是开始配置VTK7.0。

2.源码编译VTK7.0, 解决了vtk7.0core.dll的问题

图方便直接源码编译VTK7.0,PCL还是1.8.1, 解决了vtk7.0core.dll的问题

1)单独编译vtk7.0,debug模式下有权限问题,release编译成功

2)调试报错找不到opencv2410.dll的问题,换成opencv2410

3)Release32下成功生成exe,但测试数据时报错

配置PLADE环境记录

配置PLADE环境记录

配置PLADE环境记录

配置PLADE环境记录

猜测:

a)pcl版本1.8.1不对应vtk7.0

b)点云数据问题

3.编译PCL1.8.0

测试例程报错:error C2039: “_Insert_n“: 不是 “std::vector...成员问题

解决方案用VS2013工具集

测试PLADE报错:

配置PLADE环境记录

百度出错原因:

Visual Studio 2013(即宏 _MSC_VER = 1800),而我正在使用的 IDE 是 Visual Studio 2017(即宏 _MSC_VER = 1900),出错信息很明确的指出了,当前的编译平台工具集并不匹配。

解决方式

a)用VS2013编译

b)用VS2017编译 libcef_dll_wrapper13d.lib

4.安装VS2013编译

(安装VS2013官网的community版本与VS2017冲突,卸载后安装了离线安装包VS2013ULT)

  1. Debug32测试opencv2410和PCL180成功
  2. PLADE测试Debug版本报错:找不到MSVCR110D.dll

配置PLADE环境记录

百度原因:这个MSVCR版本是VS2012,需要下载一个 MSVCR110D.DLL并安装即可。

但这个博客说安装了没效果,需要重装vs2012,保险起见安装了VS2012专业版。

成功。(但后面发现即使不装V2012,exe也已经生成成功了,只是debug控制台窗台报错。)

5.试用VS2012平台编译

因为通过观察PLADE的原始属性表,它是用vc110即VS2012编译的,想尝试用VS2012编译一下,但发现安装的PCL1.8.0是VS2013的Allone版本,在VS2012平台上出错:\vtk-7.0\vtkmath.h(1275): error C2039: “isinf”: 不是“std”的成员。

PLADE用的就是PCL1.8.0,官方安装包只有PCL-1.8.0-AllInOne-msvc2013即VS2013集成版本,没有VS2012的,再看看PLADE自带的属性表,怀疑它是源码编译的PCL1.8.0所有的第三方库。

二、配置PLADE平台教程

环境:

统一环境:win32+debug32

VS2013正式版+PCL1.8.0+OpenCV2.4.10

1.安装VS2013

安装VS低版本可能和已存在的高版本VS冲突,我最先在官网下载的VS2013社区版,安装完装了一个语言包,打开就一直停在正在加载初始化的界面,怀疑是该版本与自身已存在的VS2017冲突。如果出现该情况,使用微软出版的VS卸载工具卸载干净VS再进行安装。

可参考完全卸载VS我用的第五代工具,卸载过程需要耐心等一段时间

(这里感谢实验室小师弟主动献上VS2013正式版的安装包,他的环境与我的差不多,装上非常放心,后面也再次麻烦了他安装VS2012测试。)

2.安装OpenCV2.4.10

最开始装opencv2410的时候,不知道为啥一直出错,什么中断的错误,后面再次编译它的时候好了,猜测前面编译它的时候是库名称没有配置好,直接复制粘贴了其他人博客的。

配置过程参考OpenCV 2.4.10 + VS2013 开发环境配置

也可参考我的博客VS2019源码编译工程代码OpenCV2.4.13.6

3.配置PCL1.8.0

参考pcl1.8.0+vs2013环境配置(详细),测试例程可用他的

也可参考我的博客VS2017+PCL1.8.1+VTK8.0.0+QT

安装了PCL-1.8.0-AllInOne-msvc2013-win32后,没有源码编译VTK7.0,直接可用

三、PLADE使用

1.测试使用管理员模式下的CMD“xxx.exe xxx.bpn”

2.测试数据是通过mapple处理过保存bpn格式的数据

3.工程中两个项目,项目plane_based_registration 包含一个parse_VG.cpp处理法向量,一个registration.cpp处理配准,需要哪个编译哪个的exe。项目pointcloud_processing是生成pointcloud_processing.dll的项目,工程文件夹里已有生成好的dll在libs文件夹。

配置PLADE环境记录

(parse_VG.exe界面)

可能出现的配置问题:

1)C2079 “pcl::KdTreeFLANN...param_k_”使用未定义的 struct“flann::SearchParams”

参考文章