配置vtk(Win8.1 + VS2012+VTK-5.10.1)
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)的更多相关文章
- Win8.1+vs2012+osg环境搭建
Win8.1+vs2012+osg环境搭建 一. 相关准备 a) Osg源码 当前最新版:OpenSceneGraph-3.2.0.zip 下载链接: http://www.opensceneg ...
- VTK教程系列:VTK基础及应用开发教程
由于OpenCV不能使用,只能使用VTK库的图像处理库,暂时还没有找到其他可以全面替代的库: CSDN东灵工作室:http://blog.csdn.net/www_doling_net/article ...
- 【转】windows环境下安装win8.1+Mac OS X 10.10双系统教程
先要感谢远景论坛里的各位大神们的帖子 没有他们的分享我也不能顺利的装上Mac OS X 10.10! 写这篇随笔主要是为了防止自己遗忘,同时给大家分享下我的经验. 本教程适用于BIOS+MBR分区的 ...
- windows环境下安装win8.1+Mac OS X 10.10双系统教程
首先要感谢远景论坛里的各位大神们的帖子 没有他们的分享我也不能顺利的装上Mac OS X 10.10! 写这篇随笔主要是为了防止自己遗忘,同时给大家分享下我的经验. 本教程适用于BIOS+MBR分区 ...
- win8+sdk8+vs2012+freeglut+glew开发opengl
写给想要学习opengl的同学们. 刚开始学习opengl的时候,对于整个环境的搭建以及一些概念不太清晰,网上的资料又比较凌乱,因此在此总结一下,方便大家. 首先,是有一个windows系统,我用的是 ...
- 配置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 ...
- vs2012 arcgis engine 10 丢失arcgis模板
1.Visual Studio 2012环境下安装ArcGIS Engine 10 Visual Studio 2012环境下安装ArcObject SDK for the Microsoft .Ne ...
- 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 ...
- VTK三维重建(1)-使用VTK读取DICOM,并动态输出
[效果显示] 将脚部骨骼扫描的CT照片进行的连续读取, 运行结果存为了两个动态gif, 不知道能不能正常显示 [程序实现] int main(int argc, char* argv[]) { // ...
随机推荐
- linux系统的特殊符号
符号 作用 示例 # 注释符号,井号后的内容不会执行 echo #WORD ~ 当前用户的家目录 cd ~ ; 命令顺序执行,前面执行成功与否对后面没影响 COMMAND1 ; COMMAND2 &a ...
- 记录python上传文件的坑(2)
描述: 1.之前在写项目mock代码时,碰到一个上传文件的接口,但项目接口本身有token保护机制,碰到token失效时,需要重新获取一次token后,再次对上传文件发起请求,在实际调用中发现,第一次 ...
- LeetCode刷题-最长公共前缀(简单)
题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow ...
- selenium原理应用 - 利用requests模拟selenium驱动浏览器
前言 selenium是一个web自动化测试的开源框架,它支持多语言:python/java/c#… 前面也有一篇文章说明了,selenium+浏览器的环境搭建. selenium支持多语言,是因为s ...
- python进程基础点整理
操作系统 串行: 一个程序完完整整的执行完再执行下一个 并发: 看起来像是同时运行,其实就是程序间的切换频率比较快,看不出来 并行:真正的同时运行 多道技术 空间复用:共用一个内存条,多个进程相互隔离 ...
- ef实现一次查询多个聚合函数的字段
想用ef来写一个统计字段的语句,如下所示 select sum(price) as price_total, sum(amount) as amount_total from table1 发现似乎实 ...
- CronExpression表达式详解和案例
1. cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} 2. cron表达式各占位符解释: {秒数} ==> 允许值范围: 0~59 ,不允许 ...
- jQuery基础之表单验证
在使用jquery-validate.js插件时可以做一些初始化配置在初始化jquery-validate.js对象的时候,将外部的一些配置和该插件内部的一些默认配置合并在一起,如果有相同的配置,前者 ...
- Oracle 两个逗号分割的字符串,获取交集、差集的sql实现过程解析
Oracle数据库的两个字段值为逗号分割的字符串,例如:字段A值为“1,2,3,5”,字段B为“2”.想获取两个字段的交集(相同值)2,获取两个字段的差集(差异值)1,3,5. 一.最终实现的sql语 ...
- Playbook剧本初识
目录 1.Playbook剧本初识 2.Playbook变量使用 3.Playbook变量注册 4.Playbook条件语句 5.Playbook循环语句 6.Playbook异常处理 7.Playb ...