这部分源码中很好的展现了调用PCL库中各个模块用于实现点云拼接,但源码由于是2011年的版本,PCL库有所更新,现在编译会存在一些问题,记录解决办法如下:
问题1:E0312 不存在用户定义的从 “boost::shared_ptr<pcl::KdTreeFLANN<pcl::PointXYZRGB, flann::L2_Simple>>” 到 “const boost::shared_ptr<pcl::search::Searchpcl::PointXYZRGB>” 的适当转换
解决思路:刚开始我认为只是由于不能传递非const实参到const形参,所以加了const进行强制转换,结果还是不行,const关键词的相关知识理解还不到位;
后续直接将错误提示进行google搜索,未找到合适的解决办法;突然想到把错误行代码直接google搜索,说不定就有相同功能的不同实现代码可以替代,或是有作者给出解决方案,最后在2014年的一个pcl_tutorial中找到了后续PCL库版本中的kdtree搜索实现代码,刚开始只是更换错误部分,仅将pcl::KdTreeFLANN替换为pcl::search::KdTree,该错误解决。
问题2:错误 C4996 ‘vtkMapper::ImmediateModeRenderingOff’: 被声明为已否决
解决思路:直接百度错误代码,有两种解决办法:
1、将属性——C/C++——常规中的sdl检查改为否;参考链接:错误4996
2、在程序代码最前面添加 #pragma warning(disable: 4996)(在程序代码最前面添加后未通过,有知道原因的请留言指正,谢谢!) 参考链接:错误4996(2)
问题3:错误 C2440 “初始化”: 无法从“Y *”转换为“pcl::search::KdTr