2.将vtk源代码解压到d:\vtk\sourcecode
3.下载vtkdata.zip,这是vtk例子所需要的数据,解压到d:\vtk\vtkdata
4.安装cmake
5.安装Visual Studio 2010
6.运行cmake
7.在第一个文本框“where is the source code”中选择“D:/VTK/sourcecode”目录。
8.在第二个文本框“where to build the binaries”中选择输出目录,如:“d:/vtk/bin”
9.点击“configure”按钮,选择“visual studio 10”(vs2010),然后,cmake 就会对系统举行扫描了,停下来之后,我们就可以修改cmake选项了。扫描的历程中不能出现不论什么错误,不论什么错误都会导致后来编译VTK.dsw的错误,纵然能够扫描完成。有错误的话,就要把D:\vtk\bin\目录下除vtk.exe以外的所有文件和文件夹删除,重新configure。
10.查看列表中的选项,vtk_data_root,浏览到例子数据所在位置,如“d:\vtk\vtkdata”
11.build_examples:勾选上则编译例子,
12.build_testing: 勾选上则编译测试代码,也是例子
13.vtk_use_parallel:勾选
14.build_shared_libs: 设置为on,将会多生成 dll 文件,这些dll需要拷到windows/system目录下。要是用静态库编程,即off时,应用程序可以独立运行,尺寸也比较大,要是用动态库编程, 即on时,应用程序必须找到动态库才能运行,但尺寸可以做得比较小。
15.点击“Advanced”选项,找到vtk_use_guisupport: 很多人把vtk 安装好了,却无法运行vtk 中与mfc 混合编程的例子,提示错误都是缺少vtkmfc.lib,问题就出在这个选项,我们必须把它设置为 on,再configure 之后,会出现一个新的选项vtk_use_mfc,把它也设置为on
16.修改完cmake 选项以后,不停的按configure 按键,直到没有选项预示为红色
17.点击“Generate”按钮,在bin目录下生成vtk.sln等文件。
18.用Visual Studio 2010编译bin 目录下的VTK.sln文件,生成解决方案,时间较长。结果保存在. D:\vtk\bin\bin目录下。
注意:如果在编译的时候,出现一个error,是由于windows的IE版真相对vs2008过低,提示sdk中一个错误。找到vtkMFCwindow.cpp,将前面的宏定义修改为:
#ifndef WINVER
#define WINVER 0x0501//你可改为更高版本
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0500 // 这是我改的
#endif
另外还有一个错误:vtkio.dll延迟加载失败,改成添加vtkio.lib文件
19.生成成功后在VS2010下打开解决方案INSTALL.vcproj,再生成解决方案。上边要是已往的话执行INSTALL.vcproj会很顺遂,没有错误。
20.将D:\vtk\bin\bin\debug这个文件夹选择此中所有的DLL 后缀的文件全部复制到c:\windows\system32 (调试时推荐),或者拷贝到VC项目可执行文件所在位置(安装到其他机器时拷贝)。
环境路径设置,这个比较重要:
1).修改Project setting->C/C++->Category->Preprocessor->Additional include directories:
D:\Program Files\VTK\vtk\Graphics,D:\Program Files\VTK\vtk\Filtering,D:\ProgramFiles\VTK\vtk\Common,D:\Program Files\VTK\bin,D:\ProgramFiles\VTK\vtk\Rendering
2). 修改Project setting->Link->Input->Object/library modules:
opengl32.lib kernel32.lib user32.libgdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.liboleaut32.lib uuid.lib odbc32.lib vtkCommon.lib vtkDICOMParser.lib vtkexoIIc.libvtkexpat.lib vtkFiltering.lib vtkfreetype.lib vtkftgl.libvtkGenericFiltering.lib vtkGraphics.lib vtkHybrid.lib vtkImaging.lib vtkIO.libvtkjpeg.lib vtkNetCDF.lib vtkpng.lib vtkRendering.lib vtksys.lib vtktiff.libvtkVolumeRendering.lib vtkWidgets.lib vtkzlib.lib