配置参考博客:
https://blog.csdn.net/qq_34512507/article/details/100991932#comments_12760404
https://blog.csdn.net/weixin_41457494/article/details/90703516
CAMKE下的操作,对于VTK8.2而言,其CMakelList.txt里第16、17行设置了CMAKE_DEBUG_POSTFIX,但是VTK8.1.0没有,为了区分Debug和Release模式下编译的dll,需要借助cmkae_gui手动设置:点击Add Entry → 添CMAKE_DEBUG_POSTFIX,Value设置为-d。
参考博客配置环境后,编译通过,调试后报错:
无法定位程序输入点于动态链接库......vtkGUISupportQt-8.1_d.dll
百度,查阅相关资料。得到以下两个方法:
(1)在主函数前加
#include <QApplication>
#include <QMainWindow>
#include <vtkAutoInit>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
(2)QT未添加到环境变量
将QT可执行目录(C:\Qt\Qt5.7.1\5.7\msvc2015_64\bin)添加到系统的环境变量中,并重启电脑。
但是遗憾的是上面两个方法都没有解决问题,还是出现这个错误,开始逐步寻找错误,是哪个地方的问题。
首先把该DLL文件,移到调.exe目录下时候,链接时首先会选择最近的dll,因此报错的时候变成了程序下的dll文件。
因为vtk的配置文件时从参考博主上下载的,莫非解压的时候发生了错误?
重新cmake了vtk8.1原文件,不同的是在编译的过程中,在已选择适配QT的基础上,找到advanced。在【module】下面选择了GUISupport选项进行了编译。将编译后的vtkGUISupporqt-8.1_d.dll放到调试目录下,可以正常调试。
小问题,将编译后的三个文件移到C:\Qt\Qt5.9.1\5.9.1\msvc2017_64\plugins\designer。QTdesigner里面没有出现QVTK的身影。