如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033
写在前面
如何嫌VTK编译过于复杂,可以直接下载
编译好的VTK文件夹
需要注意的是,不要忘记系统环境变量的配置。
还有就是qvtkwidgetplugin.lib和qvtkwidgetplugin .dll (在压缩包的VTK\lib\vtk-5.8)要考到XX:\Qt\4.8.5\plugins\designer
下载地址:http://download.csdn.net/detail/itas109/7121933
安装所需资源及版本
1、vs2010
直接到vs官网下载安装即可
2、cmake相关,下载地址:http://www.cmake.org/cmake/resources/software.html
cmake-2.8.10.2-win32-x86.exe
3、vtk相关,下载地址http://www.vtk.org/VTK/resources/software.html
vtk-5.8.0.zip
vtk-5.8.0-win32-x86.exe
vtkdata-5.8.0.zip
4、qt相关,下载地址:http://qt-project.org/downloads
qt-win-opensource-4.8.5-vs2010.exe
qt-vs-addin-1.1.11-opensource.exe
一、VS2010的安装
这一步没有什么多说的,自行安装即可。
二、Qt的安装
所安装的软件就是上面所述的2个:
Qt安装包: qt-win-opensource-4.8.5-vs2010.exe
VS插件: qt-vs-addin-1.1.11-opensource.exe
这里直接安装即可,VS2010可以自动关联QT。
强调一下:该工程文件的目录不可以有中文。不然会报错。(最好是英文路径,而且不要有空格)。
新建项目,测试一下QT。
我们在此测试一个最简单的Hello World!
在main函数中输入下面的代码
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel*label=new QLabel("
//create a label with the content "Hello world!"
label->show();
return a.exec();
}
三、VTK的安装
3.1安装Cmake
CMake 是个跨平台的自动化建构系统,用于VTK、ITK的编译。安装cmake-2.8.10.2-win32-x86.exe到指定目录,如D:\ProgramFiles\CMake 2.8。
3.2 创建安装目录结构
E盘下建一目录“VTK”(目录可自行修改,但要与后续保持一致)
在该目录下分别建三个目录
“bin”:
“vtk-5.8.0”:用于存放vtk-5.8.0.zip的解压文件
“vtkdata-5.8.0”:用于存放vtkdata-5.8.0.zip的解压文件
3.3 安装VTK win32安装程序
将vtk-5.8.0-win32-x86.exe安装到指定盘,如D:\ProgramFiles\VTK 5.8.0
3.4 运行cmake
路径的配置如上图,如果路径修改了,按照修改路径配置。
然后点击Configure,选择VS2010对应的编译器
接下来是配置cmake选项:
第一次Configure:
VTK_DATA_ROOT: 目的是告诉cmake,vtk 需要的数据都在哪里,我们的数据在 E:/VTK/vtkdata-5.8.0
CMAKE_INSTALL_PRIFIX:我个人设置在E:/VTK
BUILD_EXAMPLES::就是询问是否编译 vtk 中的例子。虽然适合新手,但是编译时间太长,所以不建议勾选。
BUILD_SHARED_LIB:如果设置为off,就只会生成lib 文件。如果设置为on,将会多生 成 dll 文件,建议选On。
BUILD_TESTING:是否编译VTK中的测试代码。此处选上。
VTK_USE_GUISUPPORT:点击窗口上的Advanced,找到该选项,选上后才能激活另一个 选项VTK_USE_MFC,这样才能进行VTK和MFC混合编程。
VTK_USE_QT:点击窗口上Advanced,找到该选项,选上后才能激活其他与QT相关选项
点击Configure,生成如下如:
第二次Configure:
把上面那三个全选上,再次点击Configure。如下图:
第三次点击Configure:
不用选择任何选项,直接点击Configure。如下图
这就说明Configure已经OK了。这时我们点击Generate。
显示Generatingdone后完成,产生相应的VTK.sln 解决方案,退出Cmake即可。
3.5运行VTK.sln的准备工作(勾选了BUILD_EXAMPLES的话)
1)请先找到E:\VTK\vtk-5.8.0\GUISupport\MFC \vtkMFCWindow.cpp (路径改变请自行查找),找到类似以下源码并修改数值如下:
#ifndef WINVER
#define WINVER 0x0501
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501 // =_WIN32_WINNT_NT4
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0601 //=_WIN32_IE_IE60SP1
#endif
#ifndef WINVER
#define WINVER 0x0501
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501 // =_WIN32_WINNT_NT4
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0601 //=_WIN32_IE_IE60SP1
#endif
2)如果之前Cmake勾选了 build_examples,工程中含有VKT的examples,仅改上面代码还不够,还需要找到
E:\VTK\vtk-5.8.0\Examples \GUI\Win32\vtkMFC\vtkDLG\stdafx.h
E:\VTK\vtk-5.8.0\Examples \GUI\Win32\vtkMFC\vtkMDI\stdafx.h
E:\VTK\vtk-5.8.0\Examples \GUI\Win32\vtkMFC\vtkSDI\stdafx.h
E:\VTK\vtk-5.8.0\Examples\GUI\Win32\SampleMFC\stdafx.h
四个文件,每个文件下找到类似以下源码并修改数值如下:
#ifndef WINVER
#define WINVER 0x0501
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
#endif
#if _MSC_VER >= 1300
#ifndef _WIN32_WINDOWS
#define _WIN32_WINDOWS 0x0501
#endif
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0501
#endif
#ifndef WINVER
#define WINVER 0x0501
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
#endif
#if _MSC_VER >= 1300
#ifndef _WIN32_WINDOWS
#define _WIN32_WINDOWS 0x0501
#endif
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0601
#endif
3)如果不进行上述两步操作,在编译项目过程中会出现类似下面错误:
fatal error C1189: #error : This file requires _WIN32_WINNT to be#defined at least to 0x0403. Value 0x0501 or higher is recommended.
3.6运行VTK.sln
运行VS2008,打开E:\VTK&ITKin VS2008\VTK\vtk_bin下的文件VTK.sln,在左边资源管理器中右键“解决方案VTK”,选择生成解决方案。开始编译所有配置好的模块。
编译结束,有四个编译失败。
失败的四个项目是vtkMDI vtkDLG vtkSDI以及win32SimpleMFC。
其实都是一个类型的错误,在这四个链接错误的工程上,右键属性,在link——Input——Additional dependencies里,加上vtkIO.lib,就OK了。
3.7 生成所需文件
点击INSTALL,即可生成所需的文件到指定路径(也就是CMAKE_INSTALL_PRIFIX所指定的路径)。同时单独编译qvtkwidgetplugin生成release文件,以供下一步使用。
3.8 vtk+qt整合
忘了提醒了: qvtkwidgetplugin.lib和qvtkwidgetplugin .dll文件必须是经过release版本得到的将qvtkwidgetplugin.lib和qvtkwidgetplugin .dll 拷贝到XX:\Qt\4.8.5\plugins\designer目录下,重新启动qt,vtk和qt即整合完毕。
3.9 配置环境变量
把CMAKE_INSTALL_PRIFIX指定的路径中的bin、lib、include全部包含到path里面。
3.10 工程中配置
在工程中,下图为添加include路径到工程,路径为CMAKE_INSTALL_PRIFIX所指定的路径中的include文件夹
下图为添加lib路径到工程,路径为CMAKE_INSTALL_PRIFIX所指定的路径的lib文件夹
下图为附属依赖选项
附属依赖列表包括:
vtkCommon.lib
vtkDICOMParser.lib
vtkexoIIc.lib
vtkexpat.lib
vtkFiltering.lib
vtkfreetype.lib
vtkftgl.lib
vtkGenericFiltering.lib
vtkGraphics.lib
vtkHybrid.lib
vtkImaging.lib
vtkIO.lib
vtkjpeg.lib
vtkNetCDF.lib
vtkpng.lib
vtkRendering.lib
vtksys.lib
vtktiff.lib
vtkVolumeRendering.lib
vtkWidgets.lib
vtkzlib.lib
vtkInfovis.lib
QVTK.lib
QVTKWidgetPlugin.lib
3.11 dll缺失问题
如果程序运行时,提示缺少*.dll,把缺的*.dll复制到C:\WINDOWS\system32下即可
至此,全部的VS2010+QT+VTK环境就搭好了。
如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033