1.下载相关软件

vtk-5.10.1.zip和vtkdata-5.10.1.zip

http://www.vtk.org/files/release/5.10/vtk-5.10.1.zip

http://www.vtk.org/files/release/5.10/vtkdata-5.10.1.zip

cmake-2.8.12.2.zip:

http://www.cmake.org/cmake/resources/software.html

2.解压以上三个包,放在E:\vtk下,vtk-5.10.1和vtkdata-5.10.1分别改名为VTKsourcecode和VTKData。

安装与配置VTK

1. 解压 cmake-2.8.2-win32-x86.zip,管理员身份运行{解压目录}\bin\cmake-gui.exe,设置sourse code目录为F:\VTK\VTKsourcecode,build目录为F:\VTK\VTKbin

按 configure 按钮,选Visual Studio 10编译器,我选的是VS2010(尽量不要用64位的),然后cmake会描所需要的文件。

需要勾选的(按个人需要):

vtk_data_root,浏览到例子数据所在位置,如“d:\vtk\vtkdata”
build_examples:勾选上则编译例子,
build_testing: 勾选上则编译测试代码,也是例子
vtk_use_parallel:勾选(并行计算相关的,不做就不选)
build_shared_libs: 设置为on,将会多生成 dll 文件,这些dll需要拷到windows/system目录下。要是用静态库编程,即off时,应用程序可以独立运行,尺寸也比较大,要是用动态库编程, 即on时,应用程序必须找到动态库才能运行,但尺寸可以做得比较小。

vtk_use_GUIsupport:勾选
再次Configure后,有一项红色为vtk_use_mfc,再勾选后Configure。
以上正确完成后点击Generate。

注意:

1)、如果找不到某些选项,记得选中 Advanced ,这样所有的都出来了

2)、所有项目会变成灰色后后可以点击 Generate,否则就不停地的修改cmake
选项,然后再按configure 按键,直到没有选项预示为红色

2. 用 vc++2010打开 D:\VTK\VTKbin\Utilities\MaterialLibrary目录下的 MaterialLibrary.sln 文件,右键点击All_Build选择重新生成。

3. 若 build_shared_libs 选择On,把D:\VTK\VTKbin\bin\Debug里生成的vtksys.dll文件拷到Windows\SysWOW64或C:\Window\System32目录下。或者打开VS2010的属性管理器(视图->其他窗口->属性管理器),双击任意“Microsoft.Cpp.Win32.user”,弹出属性页,在里面VC++目录的 Library
Directories 中将bin文件夹中的Debug包括进去。

4.
打开D:\VTK\VTKbin目录下的VTK.sln,右键点击All_Build选择重新生成。
    若build_shared_libs选择On,中途涉及MFC的示例会出错,

错误

Link错误:

a.在Solution Explorer中分别找到vtkDLG、vtkMDI、vtkSDI这三个项目,

找到F:\VTK\VTKsourcecode\Examples\GUI\Win32\vtkMFC下,发现有三个文件夹

分别点击进去,找到CMakeLists.txt文件,修改其中内容如图所示

再找到F:\VTK\VTKsourcecode\Examples\GUI\Win32发现文件夹

点击进去,找到CMakeLists.txt文件,修改其中内容如图所示

错误

This
file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or
higher is recommended.

解决办法为:

找到五个工程:vtkDLG、vtkMDI、vtkSDI、Win32SampleMFC、vtkMFC

前三个路径:F:\VTK\VTKsourcecode\Examples\GUI\Win32\vtkMFC

Win32SampleMFC路径:F:\VTK\VTKsourcecode\Examples\GUI\Win32

a.打开前四个工程源文件中的stdAfx.h,

如果找不到,则打开<资源文件>中的stdAfx.cpp,打开找到其中#include
"stdAfx.h" ,右击:<打开"stdAfx.h">

b.打开vtkMFC工程的vtkMFCWindow.cpp,按如下方法修改

c.一个 vtkMFCWindow.cpp, 在{解压的vtk5.10.1的目录}\GUISupport\MFC

)我的电脑中路径是F:\VTK\VTKsourcecode\GUISupport\MFC

前三个文件中的stdAfx.h修改如下

// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0501// Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif #ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0501// Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif #if _MSC_VER >= 1300
#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0501// Change this to the appropriate value to target Windows Me or later.
#endif
#endif #ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0601// Change this to the appropriate value to target IE 5.0 or later.
#endif

另外还要改动文件vtkMFCWindow.cpp中的部分代码:

// Allow use of features specific to Windows 95 and Windows NT 4 or later.
#ifndef WINVER
#define WINVER 0x0501
#endif // Define _WIN32_WINNT and _WIN32_IE to avoid the following error with Visual
// Studio 2008 SP1:
// "C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\sdkddkver.h(217) :
// fatal error C1189: #error : _WIN32_WINNT settings conflicts with _WIN32_IE
// setting" #ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501// =_WIN32_WINNT_NT4
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0601//=_WIN32_IE_IE60SP1
#endif

此时,应该没有问题了。

若出现cannot find vtkMFC.lib则是由于cmake阶段未勾选vtk_use_mfc

5、一切修改完成之后,再次右键点击All_Build选择重新生成

然后右击Cone6,Win32SampleMFC,选择调试->启动新实例,这时可以看到正确运行的程序了。(注:Cone6需要你CMAKE时勾选build_examples:)

注意:如果还想把VTK相关的头文件、动态链接库文件等提取出来,以便用于其他项目的开发,可以编辑VTK.sln项目中的‘INSTALL’工程,右击该工程,选择Project Only->Build Only INSTALL选项,VTK里的所有头文件以及相关的库文件等,即会被提取到CMAKE_INSTALL_PREFIX选项所指定的目录里,默认路径是C:/Program Files/VTK(这个在Cmake中的configure配置里出现的有)

配置vtk(Win8.1 + VS2012+VTK-5.10.1)的更多相关文章

  1. Win8.1+vs2012+osg环境搭建

    Win8.1+vs2012+osg环境搭建 一.    相关准备 a) Osg源码 当前最新版:OpenSceneGraph-3.2.0.zip 下载链接: http://www.opensceneg ...

  2. VTK教程系列:VTK基础及应用开发教程

    由于OpenCV不能使用,只能使用VTK库的图像处理库,暂时还没有找到其他可以全面替代的库: CSDN东灵工作室:http://blog.csdn.net/www_doling_net/article ...

  3. 【转】windows环境下安装win8.1+Mac OS X 10.10双系统教程

    先要感谢远景论坛里的各位大神们的帖子  没有他们的分享我也不能顺利的装上Mac OS X 10.10! 写这篇随笔主要是为了防止自己遗忘,同时给大家分享下我的经验. 本教程适用于BIOS+MBR分区的 ...

  4. windows环境下安装win8.1+Mac OS X 10.10双系统教程

    首先要感谢远景论坛里的各位大神们的帖子  没有他们的分享我也不能顺利的装上Mac OS X 10.10! 写这篇随笔主要是为了防止自己遗忘,同时给大家分享下我的经验. 本教程适用于BIOS+MBR分区 ...

  5. win8+sdk8+vs2012+freeglut+glew开发opengl

    写给想要学习opengl的同学们. 刚开始学习opengl的时候,对于整个环境的搭建以及一些概念不太清晰,网上的资料又比较凌乱,因此在此总结一下,方便大家. 首先,是有一个windows系统,我用的是 ...

  6. 配置ubuntu 16.04.1 LTS odoo 10.0开发环境

    使用VMware Fusion 8.5.0创建ubuntu 64bit虚拟机:使用ubuntu-16.04.1-desktop-amd64.iso镜像缺省安装ubuntu,用户名odoo,密码1234 ...

  7. vs2012 arcgis engine 10 丢失arcgis模板

    1.Visual Studio 2012环境下安装ArcGIS Engine 10 Visual Studio 2012环境下安装ArcObject SDK for the Microsoft .Ne ...

  8. Mac下配置Java Web开发环境(Mac 10.12)

    1.JDK http://www.cnblogs.com/EasonJim/p/6277541.html 2.MySQL http://www.cnblogs.com/EasonJim/p/62758 ...

  9. VTK三维重建(1)-使用VTK读取DICOM,并动态输出

    [效果显示] 将脚部骨骼扫描的CT照片进行的连续读取, 运行结果存为了两个动态gif, 不知道能不能正常显示 [程序实现] int main(int argc, char* argv[]) { // ...

随机推荐

  1. vmstat/top/iostat/route/sar 常用命令

    [vmstat]Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.CPU活动进行监控.是对系统的整体情况进行统计,不足之处是无法对某个进程进行深 ...

  2. Oracle解析逗号分隔的字符串,或者01110110101此类数据

    -- 1.提取此类数据中的1的索引位置,从1开始    例: 0001100001100 --> 4,5,10,11 create or replace function hazq_instr_ ...

  3. gunicorn Python部署应用

    对于flask应用 启动命令为 python app.py 使用gunicorn启动 pip install gunicorn python gunicorn --workers=7 switch_a ...

  4. C++ std::list 和 std::forward_list 的差别及其成员函数差异对比

    主要差别: list 是双向链表,forward_list 是双向链表. 成员函数差异: 函数名 list forward_list back() has no size() has no inser ...

  5. 关于String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

    关于 String path = request.getContextPath(); String basePath = request.getScheme()+"://"+req ...

  6. 【使用篇二】SpringBoot集成SpringSecurity(22)

    SpringSecurity是专门针对基于Spring项目的安全框架,充分利用了依赖注入和AOP来实现安全管控.在很多大型企业级系统中权限是最核心的部分,一个系统的好与坏全都在于权限管控是否灵活,是否 ...

  7. angularjs路由监听,uirouter感知路由变化,解决uirouter路由监听不生效的问题

     壹 ❀ 引 angularjs除了惊为天人的双向数据绑定外,路由也是出彩的一笔,通过路由配置,我们能在不发起页面跳转的情况下,对当前页内容进行整体更新,angularjs提供了ngRoute模块用于 ...

  8. C#深入浅出之更多数据类型

    类型的划分        一个类型,要么是值类型,要么是引用类型.区别在于拷贝方式:值类型拷贝值,引用类型拷贝引用 值类型        值类型直接包含值.相当于每一个值类型都有自己单独的值: int ...

  9. linux中crontab任务调度

    一.创建调度任务 指令 crontab -e 进入当前用户编辑界面 crontab -u 用户名 -e 进入指定用户编辑界面 进入crontab任务编辑界面 任务编写格式 #每分钟执行查看一次/ect ...

  10. 使用策略模式重构switch case 代码

    目录 1.背景 2.案例 3.switch…case…方式实现 4.switch…case…带来的问题 5.使用策略模式重构switch…case…代码 6.总结 1.背景 之前在看<重构    ...