VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

一、前期准备

编译vtk所需环境

VTK源码(8.2.0)

https://vtk.org/download/

Cmake(cmake-3.17.1-win64-x64)

https://cmake.org/download/

VS2019(专业版)

https://visualstudio.microsoft.com/zh-hans/downloads/

QT(5.14.2.)

https://www.qt.io/download

二、 编译之前规划

先为VTK新建一个文件夹,将此目录作为VTK的家目录。在VTK目录之下新建四个目录,它们分别是:VTK-8.2.0-src(将下载的源码解压到此目录下);VTK-8.2.0-bin(VTK在编译时生成编译的二进制文件放在此文件夹中);VTK-8.2.0-Install-VS2017-x64-Release(生成的lib文件include文件放于其中,此即我们需要的库的Release版本);VTK-8.2.0-Install-VS2017-x64-Debug(生成的lib文件include文件放于其中,此即我们需要的库的Debug版本)

注意:VTK官网提供了VTK-Data-8.2.0可用可不用

三、安装vs 2019

这个不啰嗦了,c++必选,其他没注意

四、安装qt

MSVC2017 64-bit 必须勾选,没有2019的标识可选

五、在VS2019中安装QT插件

打开VS2019,扩展——管理扩展,搜索qt,安装下图插件。关闭VS2019自动安装。

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

打开VS2019,扩展——Qt VS Tools——Qt Option

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

 

六、安装Cmake

注意的是把他添加到系统环境变量中,3个选项中应该选第二个,注意一点

七、Cmake编译VTK库

  1. 打开安装的cmake-gui,选择VTK源码路径,以及二进制存放路径,此即我们规划的VTK-8.2.0-src与VTK-8.2.0-bin。开始Config即可VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)
  2. 选择2019 Win64编译。选择后点击Finish

  3. 第一次Config完成以后,此时界面会变成红色。我们需要对一些选项进行配置。这一步我们勾选BUILD_EXAMPLES即编译VTK自带的示例文件。当然这不是必须的,勾选编译示例会增加额外的编译时间。但是,BUILD_SHARED_LIBS一定确保是勾选的,VTK-8.2.0默认是勾选的。此项的作用是生成动态共享库DLL。

  4. CMAKE_INSTALL_PREFIX是我们VTK库要安装的位置,亦即VTK编译后生成的库文件所在位置,建议将位置修改为我们规划的Debug文件夹。虽然图中是Release,但是我还是建议选择Debug文件夹,因为我的思路是先生成Release版本的VTK库,生成后,将所有文件全部剪切到Release文件夹下。接下来再次生成Debug版本,就会在Debug文件夹里了。之所以这么做,还是因为我们选择CMAKE_INSTALL_PREFIX路径后不可以改变。

    注意:文件深度不能太深,我就是取得名字太长,导致文件夹路径太长,配置不能选,总之名字别太长,不能有中文,特殊字符就可以了

  5. 使用Qt必须此处要勾选VTK_Group_Qt

  6. Debug版本的库后面一般带d表示是Debug版本。为了区分版本,我们在CMAKE_DEBUG_POSTFIX后面添加d这样进行Debug版本编译时会在库文件名后面多个d。可以不用

  7. 如果你下载了VTK-8.2.0-Data,在VTK_DATA_STORE中可以选择VTK-8.2.0-Data所在的路径。这一步为非必要步骤。执行完以上步骤以后再次点击Config。

  8. 你会发现这里还是有一片红色区域,让我们选择Qt5的位置,当然你可以提前选,我的是Qt_DIR E:\install\qt\5.14.2\msvc2017_64\lib\cmake\Qt5 VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

  9. 确定VTK_QT_VERSION是5版本,一般都是然后再次点击Config

  10. Configuring done后,此时是白色区域,代表没有错误。如果你的界面依旧有红色,返回检查以上哪步没有勾选,一直Config到白                             色界面位置。此时可以点击Generate

    VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

Generate done后,同样是白色区域,代表没有错误。到这里CMAKE的阶段就已经完成了。VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

八、用VS2019编译vtk

  1. Cmake阶段完成以后,找到我们规划的VTK-8.2.0-bin文件夹,找到VTK.sln。打开Visual Studio2019,此时打开VTK.sln项目,因为项   目非常大,文件非常多,所以打开的速度会比较慢。VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)
  2. 项目已经加载完毕后,此时选择【生成】-->【批生成】。VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)
  3. ALL_BUILD  Release x64 栏 勾选 √---->点击【生成】。这一步会执行很长的时间。时间较长,一般的电脑得花一个多小时。VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

  4.                                                                    终于生成完了。VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

  5. 接下来,把刚刚勾选的ALL_BUILD Release后面的√去掉,下拉,在INSTALL Release后面勾选。这一步就是在安装VTK的Release版本,生成Release版本的库文件。VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

  6. 当你看到这一步的时候,你已经成功的生成了VTK-8.2.0的Release版本的库文件。到哪里去找呢?生成的Release版库文件在我们规划的Debug里面(因为我们Camke时选择的这个文件夹),这时我们需要把文件剪切到Release文件夹里,到这里Release版本生成成功。VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

  7.                                                这便是release VTK的库文件VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

  8. 你会发现Release版本的后面没有d。我们以后使用VTK进行开发,用的就是这些库文件。VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

  9. 如果你需要Debug版本的VTK库,此时需要在【生成】-->【批生成】里,把刚刚勾选的INSTALL Release后面的√取消。然后可以直接一起勾选ALL_BUILD DEBUG x64 与 INSTALL Debug,生成结束以后,会在Debug文件夹里生成库文件。此时编译阶段完成。VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

  10. 生成的Debug版本的库后面带d,以区分Release版本。

九、后续配置

VTK的Release版本与Debug版本的库都已经生成完毕了,此时我们该考虑如何在Qt Creator中使用生成的VTK库。如何在Qt Creator 中使用VTK库,我会在下面一篇文章中详细介绍,这里我们先做一些准备。

  1. 将Release 版本下 E:\work\Release\plugins\designer\QVTKWidgetPlugin.dll,E:\work\VTK-8.2.0-bin\lib\Release下的QVTKWidgetPlugin.exp与QVTKWidgetPlugin.lib复制到 Qt Creator的E:\install\qt\5.14.2\msvc2017_64\plugins\designer\文件夹下,此时单独打开Qt Designer(msvc2019_64版)会发现已经集成了                                                QVTK。可以通过拖动的方式绘制VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)
  2. 将VTK的路径放于系统的Path路径里

    【控制面板】-->【系统和安全】--【系统】-->【高级系统设置】-->【环境变量】,新建,固定写VTK_DIR变量值为VTKConfig.cmake所在的路径,这里是方便后面以Cmake的方式构建VTK程序。下面就是后面因为目录长,把文件目录名改为了ReleaseVTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

十、建项目测试

1.新建项目

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

一路向next

2.点击进入qt designerVTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

 3. 拖入一个控件 记得保存,我就是没保存,啥错也不报,爽,结果。。。。。

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

4.后面将有一堆错误

4.1 基本错误就不说了,直接先配置一下;

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

4.2 头文件没有喔?右键项目->属性->Vc++目录-->包含目录

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

还是在这个界面选 Vc++目录-->库目录

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

4.3 添加库文件 还是在这个界面下 

连接器-》输入-》附加依赖项-》添加库

将E:\work\Debug\lib里的库文件一个一个加,太麻烦,度良有办法

下面图中两文件

文本文件里放 一句话  DIR *.lib /B >LIBLIST.TXT 然后改后缀为bat,运行就出来LIBLIST.TXT,里面的库文件全拷贝出来就可以了,添加就行了,看后面的图

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

4.4 为了防止动态库文件没有

我们先把库文件放到C:\Windows\System32和C:\Windows\SysWOW64(以防万一,我的不用拷贝);

E:\work\VTK-8.2.0-bin\bin\Release里的dll文件以及E:\work\VTK-8.2.0-bin\bin\Debug 里的dll文件都拷过去。

当然还有别的办法,比方说直接在项目里添加,这个简单,先用着

4.5 再运行一下

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

错误来了,这个错误添加

#include <vtkAutoInit.h>

VTK_MODULE_INIT(vtkRenderingOpenGL2)

VTK_MODULE_INIT(vtkInteractionStyle)

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

 

再运行弹出这个,有办法

解决问题:隐藏vtkOutputWindow,

在main.cpp下 包含“vtkoutputwindow.h”
然后在main的第一行用
vtkOutputWindow::SetGlobalWarningDisplay(0);

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)

VTK 学习(一)Window 10+ qt 5.14.2 + vtk8.2.0 安装配置过程(Cmake)