win7下使用mingw编译VTK
1.安装Qt和CMake工具
2.添加mingw所在的exe文件路径(D:\Qt\Qt5.6.0\Tools\mingw492_32\bin)
到系统环境变量PATH
3.解压VTK-7.1.1.zip到F:\VTK-7.1\VTK-src下
4.新建F:\VTK-7.1\VTK-bin
//5、6步骤不加也可以
5.修改VTK-src下CMakeLists.txt文件中set(VTK_USE_WIN32_THREADS 1)为set(VTK_USE_PTHREADS 1)
6.在VTK-src/ThirdParty/libxml2/vtklibxml2/threads.c中#include “libxml.h”后添加:
#undef HAVE_WIN32_THREADS
7.启动CMake,指定source code路径为VTK-src路径,build the binaries路径为VTK-bin路径
8.点击Configure,编译器默认为use default nativecompilers,选择mingw makefiles,点击finish
9.选中grouped和advanced复选框
10.改变CMake->CMAKE_BUILD_TYPE为release
11.改变CMAKE->CMAKE_INSTALL_PREFIX为F:\VTK-7.1\releaselib(生成最后头文件和库的路径)
12.改变Module中Module_vtkGUISupportQt、Module_vtkGUISupportQtOpenGL、
Module_vtkGUISupportQtSQL、Module_vtkGUISupportQtWebkit、
Module_vtkRenderingQt、Module_vtkViewsQt的状态为选中
13.改变VTK中VTK_Group_Qt的状态为选中
//14、15不添加也可以
14.点击Add Entry,添加name为QT_QMAKE_EXECUTABLE,type为PATH,
value为D:\Qt\Qt5.6.0\5.6\mingw49_32\bin\qmake.exe
15.点击Add Entry,添加name为CMAKE_PREFIX_PATH,type为PATH,
value为D:\Qt\Qt5.6.0\5.6\mingw49_32
16.点击Configure,如果出错,点击Ungrouped Entries->QT_VTK_VERSION,改变value为5,再次点击Configure
17.等再无红颜色提示,点击Generate。
18.通过cmd到F:\VTK-7.1\VTK-bin下,使用mingw32-make
打印到文件
mingw32-make 1>mylog1.txt 2>mylog2.txt
mingw32-make >>result.txt 2>&1
19.成功后使用mingw32-make install可生成使用的头文件和库
在qt designer中使用QVTKWidget
拷贝F:\VTK-7.1\mingw\plugins\designer文件夹中的.dll到
D:\Qt\Qt5.6.0\5.6\mingw49_32\plugins\designer
D:\Qt\Qt5.6.0\Tools\QtCreator\bin\plugins\designer
在qt中引入
在.pro中加入
INCLUDEPATH += F:\VTK-7.1\releaselib5.3\include\vtk-7.1
LIBS += -LF:\\VTK-7.1\\releaselib5.3\\lib \
libvtkCommonCore-7.1 \
libvtkIOImage-7.1 \
libvtkRenderingCore-7.1 \
libvtkRenderingOpenGL2-7.1 \
libvtkRenderingFreeType-7.1 \
libvtkFiltersSources-7.1 \
libvtkFiltersCore-7.1 \
libvtkFiltersModeling-7.1 \
libvtkFiltersExtraction-7.1 \
libvtkFiltersGeometry-7.1 \
libvtkFiltersHybrid-7.1 \
libvtkDICOMParser-7.1 \
libvtkImagingCore-7.1 \
libvtkImagingColor-7.1 \
libvtkImagingHybrid-7.1 \
libvtkImagingGeneral-7.1 \
libvtkImagingFourier-7.1 \
libvtkImagingMath-7.1 \
libvtkImagingMorphological-7.1 \
libvtkRenderingVolume-7.1 \
libvtkRenderingVolumeOpenGL2-7.1 \
libvtkRenderingContext2D-7.1 \
libvtkRenderingContextOpenGL2-7.1 \
libvtkRenderingQt-7.1 \
libvtkRenderingAnnotation-7.1 \
libvtkRenderingLOD-7.1 \
libvtkFiltersGeneral-7.1 \
libvtkChartsCore-7.1 \
libvtkCommonComputationalGeometry-7.1 \
libvtkCommonMath-7.1 \
libvtkCommonTransforms-7.1 \
libvtkCommonMisc-7.1 \
libvtkCommonSystem-7.1 \
libvtkCommonDataModel-7.1 \
libvtkCommonExecutionModel-7.1 \
libvtkCommonColor-7.1 \
libvtkCommonTransforms-7.1 \
libvtkInteractionImage-7.1 \
libvtkInteractionStyle-7.1 \
libvtkInteractionWidgets-7.1 \
libvtkImagingSources-7.1 \
libvtkIOXML-7.1 \
libvtkIOLegacy-7.1 \
libvtkIOGeometry-7.1 \
libvtkGUISupportQt-7.1 \
libvtkGeovisCore-7.1 \
libvtkViewsContext2D-7.1 \
libvtksys-7.1 \
在.cpp中加入
#ifndef INITIAL_OPENGL
#define INITIAL_OPENGL
#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkRenderingVolumeOpenGL2)
VTK_MODULE_INIT(vtkRenderingFreeType)
VTK_MODULE_INIT(vtkRenderingContextOpenGL2)
#endif
qt下载url
http://download.qt.io/archive/qt/