win7下使用mingw编译VTK 和 在qt中使用vtk

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

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/

猜你喜欢

转载自blog.csdn.net/yuxing55555/article/details/80969186