VS2010 + VTK+QT的安装教程

如需转载请标明出处: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

VS2010 + VTK+QT的安装教程_第1张图片

4、qt相关,下载地址:http://qt-project.org/downloads

qt-win-opensource-4.8.5-vs2010.exe

qt-vs-addin-1.1.11-opensource.exe

VS2010 + VTK+QT的安装教程_第2张图片

VS2010 + VTK+QT的安装教程_第3张图片

 

一、VS2010的安装

这一步没有什么多说的,自行安装即可。

二、Qt的安装

         所安装的软件就是上面所述的2个:

Qt安装包: qt-win-opensource-4.8.5-vs2010.exe

VS插件: qt-vs-addin-1.1.11-opensource.exe

 

这里直接安装即可,VS2010可以自动关联QT。

强调一下:该工程文件的目录不可以有中文。不然会报错。(最好是英文路径,而且不要有空格)。

新建项目,测试一下QT。

VS2010 + VTK+QT的安装教程_第4张图片

我们在此测试一个最简单的Hello World!

在main函数中输入下面的代码

#include  

#include  

 

int main(int argc, char *argv[]) 

   QApplication a(argc, argv); 

QLabel*label=new QLabel("

Hello ""world!

");

//create a label with the content "Hello world!" 

   label->show(); 

   return a.exec(); 

}

VS2010 + VTK+QT的安装教程_第5张图片

三、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的解压文件

VS2010 + VTK+QT的安装教程_第6张图片

3.3 安装VTK win32安装程序

将vtk-5.8.0-win32-x86.exe安装到指定盘,如D:\ProgramFiles\VTK 5.8.0

3.4 运行cmake

VS2010 + VTK+QT的安装教程_第7张图片

路径的配置如上图,如果路径修改了,按照修改路径配置。

然后点击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,生成如下如:

VS2010 + VTK+QT的安装教程_第8张图片

第二次Configure:

把上面那三个全选上,再次点击Configure。如下图:

第三次点击Configure:

不用选择任何选项,直接点击Configure。如下图

VS2010 + VTK+QT的安装教程_第9张图片

这就说明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”,选择生成解决方案。开始编译所有配置好的模块。

编译结束,有四个编译失败。

VS2010 + VTK+QT的安装教程_第10张图片

失败的四个项目是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文件夹

VS2010 + VTK+QT的安装教程_第11张图片

下图为添加lib路径到工程,路径为CMAKE_INSTALL_PRIFIX所指定的路径的lib文件夹

VS2010 + VTK+QT的安装教程_第12张图片

下图为附属依赖选项

VS2010 + VTK+QT的安装教程_第13张图片

附属依赖列表包括:

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


你可能感兴趣的:(VS+QT+VTK)