参考教程:
https://blog.csdn.net/yuhangfeng/article/details/78835484
https://blog.csdn.net/webzhuce/article/details/79960512
https://blog.csdn.net/jepco1/article/details/80628026
https://blog.csdn.net/sinat_24206709/article/details/51456611
生成不同的.dll文件
https://blog.csdn.net/hrq3333/article/details/81260963
下载
下载VTK 8.1.2 并解压缩文件(先解压VTK-8.1.2.zip,然后解压VTKData-8.1.2.zip)。(C: VTK - 8.1.2) 放在其他盘也可以
下载链接:https://www.vtk.org/download/ VTK官网下载地址
打开CMakeGUI
1. 指定源代码的 输入目标(Where is the source code) 和解决方案文件的 输出目的地(Where to build the binaries),把这两个目录分开存放。
源代码目录: C: VTK - 8.1.2
二进制文件输出目录: C: VTK - 8.1.2 build
2. 手动添加变量:
- Add Entry ->VTK_DIR、PATH、D:VTKVTKbin(vtk的bin目录,自己新建的)。
- Add Entry -> CMAKE_PREFIX_PATH、PATH、C:QtQt5.11.25.11.2msvc2017_64(Qt安装目录)。
- Add Entry ->CMAKE_DEBUG_POSTFIX、STRING,Value为-gd,点击确定。设置该项保证debug版本的lib,dll和release版本lib,dll名字不同,以防止后面安装时,两者覆盖。
3. 按下[Configure]并选择目标Visual Studio 15 2017 Win64。
3. 勾选BUILD_SHARED_LIBS和VTK_Group_Qt,更改CMAKE_INSTALL_PREFIX为自定义目录(例如:C: VTK),这个目录是Install单独生成的文件夹路径,会生成bin,include,lib,plugins,share文件夹;
4. 再次点击[Configure]。
5. 报错,将VTK_QT_VERSION改为5,并确认QT_QMAKE_EXECUTABLE目录是否为Qt安装目录下msvc64版本的qmake文件,如果不是,改为msvc64版本目录下对应的文件,点击Configure。
如果Qt_DIR选项为Qt5_DIR-NOTFOUND则把Qt5_Dir指定到Qt5安装目录的cmake目录下 C:QtQt5.11.25.11.2msvc2017_64libcmakeQT5
6. 确认Qt5的几个相应目录是否为MSVC64版本对应的文件,无红色错误提示后点击[Generate]生成。
Build
1. 以管理员权限启动Visual Studio并打开VTK的解决方案文件(C: VTK - 8.0.1 build vtk.sln)。
(如果您没有以管理员权限启动Visual Studio,INSTALL将会失败。)
2. 建立VTK。(ALL_BUILD)
设置解决方案配置(Debug,Release)。
从解决方案资源管理器中选择ALL_BUILD项目。
按Build> Build Solution构建Build VTK。
3. 安装VTK。(INSTALL)
使用Release模式从解决方案资源管理器中选择INSTALL项目。
点击[Build]> [Projects Only]> [Build INSTALL only]来安装VTK。必要的文件被复制到由CMAKE_INSTALL_PREFIX指定的输出目的地。
其他设置
QT使用QVTKWidgets插件
1. 将..uildlibRelease下的QVTKWidgetPlugin.lib、QVTKWidgetPlugin.exp 和 ..uildinRelease路径下的QVTKWidgetPlugin.dll文件拷贝至QT安装路径下(5.11.2msvc2017_64pluginsdesigner),之后通过qt designer打开.ui文件即可查看到新的插件QVTK。
2. 在PATH中添加...in elease和...debuge目录。
3. VTK初始化之前使用宏定义
#ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL2) VTK_MODULE_INIT(vtkInteractionStyle) #endif