原文连接:http://blog.csdn.net/left_la/article/details/7069708编程
本人作了少许修改!windows
Win7 + VS2010 + CMake2.8.6 + VTK5.8学习
一、准备:
1)下载安装Vs2010
2)下载安装CMake2.8.6 (www.cmake.com)
3)下载VTK相关包:(www.vtk.org)
1.vtk-5.8.0-win32-x86.exe (win32安装程序)(仍是安装的好!)
2.vtk-5.8.0.zip (源码包)
3.vtkdata-5.8.0.zip (数据包)
4.vtkDocHtml-5.8.0.tar.gz (文档包,可下可不下)
二、为vtk的安装新建个根文件夹,命名为"VTK5.8",在这个文件夹下新建四个文件夹,分别命名为 VTKSrc、VTKData、VTKDoc、Bin,将以前下载的源码包数据包文档包分别解压到前三个文件夹中。
三、安装vtk-5.8.0-win32-x86.exe,安装到根文件夹 VTK5.8 下。
四、打开CMake(CMake2.8\bin\cmake-gui.exe),
设置:Source code目录:F:\Dev\SDK\VTK5.8\VTKSrc
Build目录:F:\Dev\SDK\VTK5.8\Bin (目录地址请根据本身电脑目录作更改)
而后configure,在弹出框中选择VS2010做为咱们的编译器,而后Cmake自动描述须要的文件。
停下后,显示红色列表,接着开始修改cmake选项,手动勾上
build_shared_libs、build_examples,而后勾选cmake界面上方的Advanced,进入下一级,这时到下面从新找到vtk_use_guisupport 这一项勾选,再 configure,以后会出现 vtk_use_mfc,选择它勾选,再一直configure,直到红色消失。
最后Generate,产生相应的KTV.sln 解决方案。
(
相关说明:
一、为何要勾选vtk_use_mfc? 不少人把 vtk 安装好了,却没法运行vtk 中与mfc
混合编程的例子,提示错误都是缺乏vtkmfc.lib,问题就出在这个选项,咱们必须
把它设置为 on。
二、vtk_use_qvtk,这是给QT用的vtk
三、vtk_data_root: 目的是告诉cmake,vtk 须要的数据都在哪里,咱们的数据在
F:\Dev\SDK\VTK5.8\VTKData
四、cmake_install_prefix: 这个是指定一个目录把.h .lib .dll等精华放在这里,
"VTK安装三步曲"里说是为未来装vtk作准备。
五、build_examples: 就是询问是否编译 vtk 中的例子,初次用VTK,选上便于
学习。
六、build_shared_libs: 若是设置为off,就只会生成lib文件,用于开发确定是
够了。若是设置为on,将会多生成 dll 文件,这些dll须要拷到windows/system
目录下。若是用静态库编程,即off时,应用程序能够独立运行,尺寸也比较大,
若是用动态库编程,即on时,应用程序必须找到动态库才能运行,但尺寸能够作
得比较小。建议选On, 我试过选OFF,所谓的静态编译,但以后新建一个项目时,
仍是会出现找不到文件的问题。
7.vtk_use_parallel: 对于想用vtk 作并行计算的朋友,要把这个选上,
对于只想学学vtk 的,保持默认 off
)
五、打开 KTV.sln ,若是使用vs2010,在编译整个解决方案以前,须要注意:
1)请先找到VTKSrc\GUISupport\MFC\vtkMFCWindow.cpp ,找到相似如下源码并修改数值以下:
ui
- #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,仅改上面代码还不够,还须要找到
VTKSrc\Examples\GUI\Win32\vtkMFC\vtkDLG\stdafx.h
VTKSrc\Examples\GUI\Win32\vtkMFC\vtkMDI\stdafx.h
VTKSrc\Examples\GUI\Win32\vtkMFC\vtkSDI\stdafx.h
VTKSrc\Examples\GUI\Win32\SampleMFC\stdafx.h
四个文件,每一个文件下找到相似如下源码并修改数值以下:spa
3)若是不进行上述两步操做,在编译项目过程当中会出现相似下面错误:
- #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
总结:主要是使用到了MFC支持,从中取出MFC LIB文件,取消QT的全部选择项,一次性成功:.net
而后,打开目标文件夹的方案文件,release 和debug都所有生成一遍,大功告成!
debug