參考教程:
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:\VTK\VTKbin(vtk的bin目錄,自己新建的)。
- Add Entry -> CMAKE_PREFIX_PATH、PATH、C:\Qt\Qt5.11.2\5.11.2\msvc2017_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:\Qt\Qt5.11.2\5.11.2\msvc2017_64\lib\cmake\QT5
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. 將..\build\lib\Release下的QVTKWidgetPlugin.lib、QVTKWidgetPlugin.exp 和 ..\build\bin\Release路徑下的QVTKWidgetPlugin.dll文件拷貝至QT安裝路徑下(5.11.2\msvc2017_64\plugins\designer),之后通過qt designer打開.ui文件即可查看到新的插件QVTK。
2. 在PATH中添加...\bin\release和...\debuge目錄。
3. VTK初始化之前使用宏定義
#ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL2) VTK_MODULE_INIT(vtkInteractionStyle) #endif