详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

经过了很多次的失败

大概的总结一下具体流程

在Cmake的时候一定要注意选择把编译器调整为x64的,否则后面会不断遇到模块计算机类型“x86”与目标计算机类型“x64”冲突

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

此类问题,因为QT是64位的无法在32位的vtk下运行

后来发现VTK可直接使用编译好的内容,不需要再去编译好几个小时,所以大家可以跳过下面的编译步骤,直接下载编译好的文件(在下面的配置内容中为路径是C:\VTK的VTK文件夹)

链接:https://pan.baidu.com/s/1InVYuHHyIB8FMJog5rrRZg 
提取码:pt9k 

可以的话希望能支持下我:

CSDN下载(本来想设置一分的...但是现在下载积分只能系统自动生成..):

https://download.csdn.net/download/wilsonass/11214921

开始编译VTK

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

设置cmake中的各项的值

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

 

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

 

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

 

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

 

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

 

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

 

设置好点击Configure

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

将QT_version更改为5

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

如果没有找到QT5的路径的话,则手动设置QT路径

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

再次点击Configure

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

Configure完成后不出问题就会全部变成白色

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

点击Generate

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

 

左下角出现Generating done后

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

点击Open Project

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

在Debug  x64下,解决方案中右键ALL_BUILD,点击生成,等待很长一段时间

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

再从解决方案中右键INSTALL,点击生成

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

等完成后,更改为Release x64,再ALL_BUILD生成

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

再从解决方案中右键INSTALL,点击生成

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

测试:

找到Cube,将其设为启动项目

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

然后运行

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

成功。

 

接下来开始在VS上使用VTK:

1.配置QVTKWidgetPlugin文件

复制下面三个文件,dll在bin文件夹中,exp和lib在lib文件夹中

注意要用Release版本才可以正常使用

VTK\VTK-8.2.0\build\bin\Release

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

VTK\VTK-8.2.0\build\lib\Release

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

拷贝到以下目录中

Qt\Qt5.9.2\5.9.2\msvc2017_64\plugins\designer

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

 

2.设置include文件目录

右键项目进入属性页

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

加入此路径

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

 

3.设置lib文件目录

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

 

4.写入依赖项

打开文件夹

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

新建一个文本文档,写入内容 dir /a-d /b *>scr.txt

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

修改文件后缀名为.bat

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

运行该bat文件,即可获得一个名为src.txt的文件,将其打开

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

删除1.bat和src.txt,复制剩下的内容

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

接下来安装Qt VS Tools

首先推荐的方法是到网上找2.3版本一下的Qt VS Tools,因为2.3版本的容易出问题

这里是vs2017和vs2015的Qt VS Tools 2.2.1的备用链接

链接:https://pan.baidu.com/s/1vdEdpcvlFfyH55P3FroA0g 
提取码:crfi 

下载完后双击等他完成即可

然后用管理员方式运行VS

选择扩展和更新

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

在左下角找到 更改扩展和更新设置

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

将所有的自动检查更新都关闭,以免下次运行VS又会自动更新到Qt VS Tools2.3

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

另一种简单的方法是(只能安装最新版本的Qt VS Tools)

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

选择联机

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

搜索qt

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

中间会出现QT Visual Studio Tools,选择安装即可

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

 

QT Visual Studio Tools需要在qt下装有msvc2017

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

新建一个测试工程

注:路径最好不要带有中文名字,我后面出现了很多错误,可能是因为中文路径导致的

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

全都默认next就好

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

打开解决方案中的ui文件

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

在左侧的控件栏中会有一个QVTK控件

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

拖动到主窗口中

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

CTRL+S保存一下,然后到VS中运行

 

遇到如下问题:

由于找不到vtkGUISupportQT-8.2.dll,无法继续执行代码。重新安装程序可能会解决此问题。

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

解决:

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

再次运行,遇到如下问题

0x00007FFA5624F08E(ucrtbase.d)中处有未经处理的异常:请求了严重的程序退出。

引发此异常类型时中断从以下位置引发时除外:ucrtbase.dll

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

解决方式:

源代码中添加以下三行

#include "vtkAutoInit.h"

VTK_MODULE_INIT(vtkRenderingOpenGL2);

VTK_MODULE_INIT(vtkInteractionStyle);

详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2

 

成功详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2