参考了很多配置文章,只列出主要二个
http://blog.csdn.net/yunhaic/article/details/40653221
http://wenku.baidu.com/link?url=JRcgVmoM0UsnrzzQx2ch25W1QLpPl3voOz9BIysJzhtOwSAOZDqODetrmDfuVohMHOBxGzroD3j_EwrV4obWHRQGBugKmCHQP34rHKOjGaO
我的安装路径
安装VTK遇到了一些问题,参考了很多配置的文章才找到解决办法,写下来希望能给大家带来快捷的帮助
1、Cmake遇到的一些问题及解决
1.1 找不到VTK_DIR
手动设置为C:\vtk\VTKbin
1.2 找不到TCL_LIBRARY TK_LIBRARY
因为我的计算机没有安装TCL,所以CMake就找不到吧,所以我就在http://www.activestate.com/activetcl/downloads,一步一步安装就可以了
那么TCL_LIBRARY就可以手动设置为C:\vtk\TCL\lib\tcl86.lib,TK_LIBRARY就可以手动设置为C:\vtk\TCL\lib\tk86.lib
1.3 CMake时如果你的build_shared_libs设置为on的话,将会多生成 dll 文件,很多人会疑问那些dll文件的目录在哪儿?还有什么时候经行拷贝转移了?
CMake的时候不用经行拷贝转移,当所有代码重新生成的时候,即用VS2012打开E:\vtk\VTKbin\Utilities\MaterialLibrary目录下的 MaterialLibrary.sln 文件,右键点击All_Build选择重新生成完成之后,把E:\vtk\VTKbin\bin\Debug(这是参考作者的目录)下的所有dll文件都拷贝到Windows\SysWOW64。
2、CMake完成之后需打开E:\vtk\VTKbin下的VTK.sln,右键点击All_Build选择重新生成,很多人用了好几个小时甚至几天,但这个过程我只用了15分钟左右,哈哈,很开心,但重新生成成功了141个,失败了6个,下面是解决办法。
3、This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended. 解决办法为:
找到五个工程:vtkDLG、vtkMDI、vtkSDI、Win32SampleMFC、vtkMFC 打开前四个工程源文件中的stdAfx.h, vtkMFC工程下的vtkMFCWindow.cpp打开修改
4个stdafx.h如下修改
#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0601 // 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 0x0601 // 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 0x0601 // 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 0x0800 // Change this to the appropriate value to target IE 5.0 or later. #en
vtkMFCWindow.cpp中的部分代码:
// Allow use of features specific to Windows 95 and Windows NT 4 or later. #ifndef WINVER #define WINVER 0x0601 #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 0x0601 // =_WIN32_WINNT_NT4 #endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0800 //=_WIN32_IE_IE60SP1 #endif
此时,应该没有问题了
4、直接测试VTK自带的例子
打开C:\vtk\VTKbin\Examples\VTKExample.sln,选中你要测试的项目设为启动项目,就可以看到结果了噢
5、自己建项目
新建项目Test(控制台应用程序空项目),增加Test.cpp文件,用Cone6.cxx的文件内容覆盖Test.cpp的内容。
需自己配置的三大步骤
5.1 项目属性->配置属性->VC++目录->库目录: C:\vtk\VTKbin\bin\debug
5.2 项目属性->配置属性->VC++目录->包含目录 ,拷入入下述内容:
C:\vtk\VTKbin; C:\vtk\VTKbin\bin; C:\vtk\VTKsourcecode\GenericFiltering;C:\vtk\VTKsourcecode\Common; C:\vtk\VTKsourcecode\IO;
C:\vtk\VTKsourcecode\Filtering; C:\vtk\VTKsourcecode\Rendering; C:\vtk\VTKsourcecode\Graphics; C:\vtk\VTKsourcecode\VolumeRendering;
C:\vtk\VTKsourcecode\Imaging; C:\vtk\VTKsourcecode\Hybrid; C:\vtk\VTKsourcecode\GUISupport; C:\vtk\VTKsourcecode\ Utilities;
C:\vtk\VTKbin\ Utilities; C:\vtk\VTKsourcecode\Parallel; C:\vtk\VTKsourcecode\Widgets
5.3位于项目属性->链接器->输入->附加依赖项 ,拷入下述内容(注意:C:\vtk\VTKbin\bin\Debug里的lib文件都要附加上去):
kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;comctl32.lib;vfw32.lib;ws2_32.lib;
wsock32.lib;opengl32.lib;vtkCharts.lib;vtkGeovis.lib;vtkViews.lib;vtkInfovis.lib;vtkRendering.lib;vtkIO.lib;vtkDICOMParser.lib;vtkNetCDF_cxx.lib;
vtkNetCDF.lib;vtkmetaio.lib;vtksqlite.lib;vtkpng.lib;vtktiff.lib;vtkzlib.lib;vtkjpeg.lib;vtkexpat.lib;vtkGraphics.lib;vtkverdict.lib;vtkImaging.lib;
vtkFiltering.lib;vtkCommon.lib;vtksys.lib;vtkftgl.lib;vtkfreetype.lib;vtkWidgets.lib;%(AdditionalDependencies)