一。关于解压安装
1.安装vtk-win32.exe,安装到d:\vtk,目录尽量短,因为后面引用更方便。
2.将vtk源代码解压到d:\vtk\sourcecode
3.下载vtkdata.zip,这是vtk例子所需要的数据,解压到d:\vtk\vtkdata
4.安装cmake
5.安装Visual Studio 2010
6.解压cmake.运行bin/cmakeGUI
二。关于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.vtk_use_guisupport:点击“Advanced”选项,找到vtk_use_guisupport, 很多人把vtk 安装好了,却无法运行vtk 中与mfc 混合编程的例子,提示错误都是缺少vtkmfc.lib,问题就出在这个选项,我们必须把它设置为 on,再configure 之后,会出现一个新的选项vtk_use_mfc,把它也设置为on
16.修改完cmake 选项以后,不停的按configure 按键,直到没有选项预示为红色
17.点击“Generate”按钮,在bin目录下生成vtk.sln等文件。
为啥需要勾选这些??随便看看
1、为什么要勾选vtk_use_mfc? 很多人把 vtk 安装好了,却无法运行vtk 中与mfc
混合编程的例子,提示错误都是缺少vtkmfc.lib,问题就出在这个选项,我们必须
把它设置为 on。
2、vtk_use_qvtk,这是给QT用的vtk
3、vtk_data_root: 目的是告诉cmake,vtk 需要的数据都在哪里,我们的数据在
F:\Dev\SDK\VTK5.8\VTKData
4、cmake_install_prefix: 这个是指定一个目录把.h .lib .dll等精华放在这里,
"VTK安装三步曲"里说是为将来装vtk做准备。
5、build_examples: 就是询问是否编译 vtk 中的例子,初次用VTK,选上便于
学习。
6、build_shared_libs: 如果设置为off,就只会生成lib文件,用于开发肯定是
够了。如果设置为on,将会多生成 dll 文件,这些dll需要拷到windows/system
目录下。如果用静态库编程,即off时,应用程序可以独立运行,尺寸也比较大,
如果用动态库编程,即on时,应用程序必须找到动态库才能运行,但尺寸可以做
得比较小。建议选On, 我试过选OFF,所谓的静态编译,但之后新建一个项目时,
还是会出现找不到文件的问题。
7.vtk_use_parallel: 对于想用vtk 做并行计算的朋友,要把这个选上,
对于只想学学vtk 的,保持默认 off
三。关于vs2010编译工程文件
打开vtk.sln。加载一段时间,由于编译耗时很久。。为防止出现可能的错误,首先需要修改一些文件和配置:共需要修改两个错误。
step1:
错误一:是由于windows的IE版真相对vs2008过低,提示sdk中一个错误
fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.
① 找到sourecode\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
②如果之前Cmake勾选了 build_examples,工程中含有VKT的examples,仅改上面代码还不够,还需要找到以下4个文件
sourecode\Examples\GUI\Win32\vtkMFC\vtkDLG\stdafx.h
sourecode\Examples\GUI\Win32\vtkMFC\vtkMDI\stdafx.h
sourecode\Examples\GUI\Win32\vtkMFC\vtkSDI\stdafx.h
sourecode\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 0x0601
#endif
step2错误二:
如果之前Cmake勾选了 build_examples,工程中含有VKT的examples,在编译过程中,以下四个项目vtkDLG、vtkMDI、vtkSDI、Win32SampleMFC,可能还会出现类似下面的LINK链接错误:称找不到vtkIO.dll
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class...
修改方法:
对于这四个项目选择“项目->属性->链接器->输入->附加依赖项->(编辑)”复制粘贴下面的路径。
以此添加入vtkIO.lib库(名称参考上面的vtksys.lib即可)这里路径为:.
..\..\..\..\..\bin\Debug\vtkIO.lib
至此,修改参数完毕。编译应该不会有错误了。
step3:
18.用Visual Studio 2010编译bin 目录下的VTK.sln文件,生成解决方案,时间较长。结果保存在. D:\vtk\bin\bin目录下。
19.将D:\vtk\bin\bin\debug这个文件夹选择此中所有的DLL 后缀的文件全部复制到c:\windows\system32 (调试时推荐),或者拷贝到VC项目可执行文件所在位置(安装到其他机器时拷贝)。
step4:执行一个例子。。cone6
右键cone6->调试->启动新实例-》是否重新生成***工程-》否-》结果如下图。
最后将D:\vtk\bin\bin\debug这个文件夹选择此中所有的DLL 后缀的文件全部复制到c:\windows\system32 (调试时推荐),或者拷贝到VC项目可执行文件所在位置(安装到其他机器时拷贝)。