0概述
https://blog.csdn.net/jaggerjack330/article/details/82595523 该博客详细讲解了如何用Cmake去编译vtk。之所以需要用Cmake来编译vtk,是因为用Qt进行点云显示时,需要用到一个叫QVTKWidget的显示插件,而这个插件在Qt函数库里是没有直接包含的,需要从vtk函数库中拷贝两个文件QVTKWidgetPlugin.dll,QVTKWidgetPlugin.lib到Qt安装路径 D:\Qt\Qt5.4.2\5.4\msvc2013 \plugins\designer,然后在Qt界面上才会显示这个QVTKWidget的显示插件。
不少博客仅提示将这两个插件直接下载好,放进Qt对应路径中去,这是可以将该控件显示出来的,但是存在一定的问题。
第一,要确保下载下来的“QVTKWidgetPlugin.dll”, “QVTKWidgetPlugin.lib”要与安装的Qt版本一致;
第二,这是最致命的一个问题,就是采用低版本PCL会造成的,PCL函数库中的3rdParty中的VTK中并没有包含QVTKWidget显示插件所需要的头文件,比如"QVTKWidget.h"。因此,意味着如果配置的是低版本的PCL,或者亲自核查一下,PCL安装路径下是否存在这个头文件,大都数情况下,直接将“.dll”,“.lib”文件拷贝进Qt,ui_xxxxxx.h会报错,提示找不到"QVTKWidget.h"该文件,以及qvtkWidget显示控件等。因此我们不仅需要从Cmake编译得到的vtk下,找到“.dll”,“.lib”文件,还要获得其中含有“QVTKWidget.h”的路径。
还有,将“QVTKWidget.h”的路径(\xxxx\include;\xxx\bin)以及vtk的相关“.lib”放进VS的包含目录、库目录以及链接器的输入,也是关键,网上现有的相关博客在这个地方提及甚少,大都是教大家如何用Cmake去编译vtk,后续往VS中添加路径这一环节几乎没有提及,https://blog.csdn.net/sinat_24206709/article/details/51456611 这篇博客有提及了,但是有点多,很多用不着。
本文着重说明,用Cmake编译完VTK之后可能面临的问题,VTK编译这块网上的博客众多,https://blog.csdn.net/jaggerjack330/article/details/82595523 这篇博客已经足够详细了。
1 环境说明
借鉴https://blog.csdn.net/jaggerjack330/article/details/82595523该博客的Cmake编译VTK,本文Qt的版本是5.4.2,Cmake3.4.3,而VTK采用的是VTK6.2,与该博客不太一样,原因在于PCL1.7.2包含的VTK版本是6.2的,因此以防后续发生冲突,所以坚持采用了与PCL1.7.2的一样的vtk版本,但整个Cmake编译流程下来是没有问题的。
2 问题一:导入完“QVTKWidgetPlugin.dll”,
“QVTKWidgetPlugin.lib”后,依旧显示“QVTKWidget.h”找不到