環境:VTK8.90,Win10_x64,Qt5.11.1,Visual studio 14 2015,CMake 3.16.0,
參考書籍:《VTK圖形圖像開發進階》
項目生成過程中按照書中所載和自身需要選擇對應的CMake配置,編譯過程中選擇正確的編譯版本,沒有出現錯誤。(與之前不同,之前在編譯較低的VTK版本是總是會出現各種各樣在錯誤,需要花時間去解決)
還有就是在輸出VTK庫時一定要記得以管理員身份打開項目並編譯INSTALL工程。
以上比較簡單。
問題:
創建一個簡單的VTK程序
1.CMakeLists.txt的編寫
在以往低版本的VTK中,INCLUDE()語句是沒有問題的,但是到這個版本後會出現問題:
解決方法:
“必須熟悉新版本的vtk的cmake文件命令,比如老版本的例子中的vtk_module_config
和include(${VTK_USE_FILE})
在新版8.90.0中都不適用了。”
將INCLUDE()語句替換爲INCLUDE_DIRECTORIES()語句:
然後CMake正常生成。
2.程序編譯沒問題,運行過程中出現的錯誤
首先是.dll文件尋找不到的問題,這個問題很好解決,按書中所講的方法或者直接在系統環境變量path中添加VTK的dll庫目錄都可以解決。
再者是程序運行時error:no override found for 'vtkRenderWindow'的錯誤。
參考:https://blog.csdn.net/q1302182594/article/details/45270891
https://blog.csdn.net/qq_15191677/article/details/68946807
https://blog.csdn.net/imsaws/article/details/15500903
我的選擇是
添加頭文件和宏定義:
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
在VTK的編譯過程中貌似使用到的是OpenGL2,所以要使用vtkRenderingOpenGL2。