使用pcl工具mesh_sampling,出现的一些编译错误

     最近正在用点云做三维物体的6自由度位姿估计问题,需要将CAD文件转化为pcd格式点云图,看到pcl库里有一个相关的写好的例程https://github.com/PointCloudLibrary/pcl/blob/master/tools/mesh_sampling.cpp     拷贝之后,直接贴在了空的一个工程中,直接用了之前弄好的配置文件,果然还是出了些问题,问题前后分为两段,搞好一个又出来一个,不管是当时弄ros还是vs都有这种情况,哎,这种东西最烦了,时间都耽误在这上面了!好多人的解决方法和我的还不大一样,有点小区别,我有预感我之后可能还会有类似的问题,这里贴出来一下也记录一下  共享一下。

 

使用pcl工具mesh_sampling,出现的一些编译错误_第1张图片

 

使用pcl工具mesh_sampling,出现的一些编译错误_第2张图片

1.直接复制代码编译之后,出现上面两张图的提示, 查着看大家的说法,大体上是因为vs没有像cmake那样默认设定好一些关于vtk的配置,导致需要手动配置一下,参看 https://stackoverflow.com/questions/18642155/no-override-found-for-vtkpolydatamapper/41969027  这里的说法是在源文件前面先于任何关于vtk的头文件之前,贴上

#include "vtkAutoInit.h" 
VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2
VTK_MODULE_INIT(vtkInteractionStyle);

然后再编译,于是就有了问题2.

2.编译之后,出现下面的问题,查了看大家的说法,反正很复杂,说是什么初始化的vtk配置和之前设定的配置不同,需要改cmake文件 

使用pcl工具mesh_sampling,出现的一些编译错误_第3张图片 

期间我一直很奇怪,我看到我vtk目录下的lib文件中只有 vtkRenderingOpenGL之类的lib文件,没有vtkRenderingOpenGL2系列的lib,我想是不是第一步应该改成

#include "vtkAutoInit.h" 
VTK_MODULE_INIT(vtkRenderingOpenGL); // 把2去掉
VTK_MODULE_INIT(vtkInteractionStyle);

但是编译之后100+个错误,之前看到  https://stackoverflow.com/questions/40086584/errorno-override-found-for-vtkpolydatamapper/43222907 

使用pcl工具mesh_sampling,出现的一些编译错误_第4张图片

 试了之后,果然搞定!

总结:其实第一步参考的网站中,也有提到让你去看你安装的到底是vtkRenderingOpenGL2还是vtkRenderingOpenGL,但是却却没提到vtkRenderingOpenGL的情况具体咋办,有人再遇到这种情况,先看看自己装的哪个。

你可能感兴趣的:(使用pcl工具mesh_sampling,出现的一些编译错误)