当前位置:   article > 正文

VTK8.0.0编译+QT5.9.2+VS2017_vtk8.0 qvtkwidgetplugin.dll

vtk8.0 qvtkwidgetplugin.dll

背景

VTK网上资料较多并且使用较多的版本可能是VTK8.2.0,但是由于之前先配置了QT 5.9.2+ msvc2017 + PCL1.8.1 + VTK8.0.0环境,听说有人PCL1.8.1配置VTK8.2.0实测版本不兼容,需修改源码调试,比较麻烦,所以之前就使用的VTK8.0.0版本。

之前配置PCL环境时,因为PCL安装后带的VTK不完整,编译VTK比较麻烦所以当时直接从网上下载的VTK库。现在测试时,发现VTK库在QT Designer中不能生成下面的QVTKWidget控件:

我这里Qt Designer中这样显示的:

因此决定重新编译一下VTK8.0.0测试一下。

编译过程

1、有网友说“VTK_RENDERING_BACKEND设置为OpenGL(这里一定要注意,否则pcl显示框会出错)。”默认是OpenGL2,这个我没有改,后面看会不会出错吧!

2、有网友说“不建议去掉TESTING,这会导致在后期VS编译阶段报错,需要修改头文件。”这个也等着看后面会不会有问题吧!

1、准备工作

首先下载了VTK8.0.0源码(不包含build,build是CMake时后新建的):

CMake下载:

版本cmake-3.28.0-rc2-windows-x86_64,免安装,下载 后找到目录bin文件夹下的cmake-gui.exe打开即可。

2、CMake重新编译VTK8.0.0

打开CMake,设置source code、build the binaries,我这里设置为D:/vtk-v8.0.0,之前新建并设置build目录,这里因为是测试所以新建并设置build_test目录。点击Add Entry添加: 

Name:CMAKE_DEBUG_POSTFIX 、Type:STRING 、Value:-gd、Description:空

让vtk的lib最后分为debug版本跟release版本。Debug版本带-gd。Release版本不带-gd,方便区分。

设置好后如图:

点击左下角的configure按钮,按下面配置后Finish:

第一次configure完成之后:

需要额外勾选上BUILD_EXAMPLES,勾选上VTK_Group_Qt,这样以后方便在qt里面使用

CMAKE_INSTALL_PREFIX存放include,lib,dll(bin)等编译结果的目录。

上面设置好后第二次点击configure,第二次configure完成之后:

出现了这个窗口:

记得第一次CMake时没有出现这个的,算了不管了,接着下面的步骤。

VTK_QT_VERSION改成5。

上面设置好后第三次点击configure,第三次还有报红的:

确认后再次configure,直到最后没有报红项后:

点击Generate:

很快,点击Open Project后VS2017打开项目。

3、VS2017编译

开始64位release编译项目:

编译过程会报错:

该报错是因为CMake中勾选了BUILD_TESTING选项,而CMake的VTK_DATA_ROOT先设置不正确,导致编译时需要先下载vtkdata数据。由于网速或者没有科学上网等原因下载数据的时间 超过了设置的最大等待时间。

解决方法:
下载vtkdata.zip数据,将其解压文件中MD5文件覆盖二进制目录下\ExternalData\Objects\MD5文件。

一遍一遍重新编译,这个文件下载好了,又是相同原因的另一个没有下载下来报错,总是断断续续报错,但是由于VTK-8.0.0版本在网上又找不到对应的vtkdata.zip数据。CMake编译去掉于是去掉BUILD_TESTING选项的勾选重新编译,最后成功。

INSTALL

CMake出来的Visual Studio解决方案里,大多有个INSTALL项目。之前总是完全忽略这个项目,恰好,编译solution的时候,这个又默认被忽略,其实这个很有用。

INSTALL生成后,将会在CMAKE_INSTALL_PREFIX设置的目录下生成下面部分:

VS2017编译成功后将生成的release版本的QVTKWidgetPlugin.dll(有人说QVTKWidgetPlugin.lib、vtkGUISupportQt-8.0.dll、vtkGUISupportQtSQL-8.0.dll也放到目录下)放到以下QT目录下D:\Qt\Qt5.9.2\5.9.2\msvc2017_64\plugins\designer,再打开Qt Designer,这次就出现QVTKWidget了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/934148
推荐阅读
相关标签
  

闽ICP备14008679号