这里只做个记录。
以前配置过,重装系统,重装VS2010后,再次打开以前写过的VC程序,编译通过不了,
这次编译又花了将近半天时间。得不偿失啊。
首先,还是按VTK安装三步曲(vs2010)来.
安装部分摘自网络,亲测可用。
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
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.点击“Advanced”选项,找到vtk_use_guisupport: 很多人把vtk 安装好了,却无法运行vtk 中与mfc混合编程的例子,提示错误都是缺少vtkmfc.lib,问题就出在这个选项,我们必须把它设置为 on,再configure之后,会出现一个新的选项vtk_use_mfc,把它也设置为on
16.修改完cmake 选项以后,不停的按configure 按键,直到没有选项预示为红色
17.点击“Generate”按钮,在bin目录下生成vtk.sln等文件。
18.用Visual Studio 2010编译bin 目录下的VTK.sln文件,生成解决方案,时间较长。结果保存在.D:\vtk\bin\bin目录下。
注意:如果在编译的时候,出现一个error,是由于windows的IE版真相对vs2008过低,提示sdk中一个错误。找到vtkMFCwindow.cpp,将前面的宏定义修改为:
#ifndef WINVER
#define WINVER 0x0501//你可改为更高版本
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0500 // 这是我改的
#endif
19.生成成功后在VS2010下打开解决方案INSTALL.vcproj,再生成解决方案。上边要是已往的话执行INSTALL.vcproj会很顺遂,没有错误。
20.将D:\vtk\bin\bin\debug这个文件夹选择此中所有的DLL后缀的文件全部复制到c:\windows\system32(调试时推荐),或者拷贝到VC项目可执行文件所在位置(安装到其他机器时拷贝)。
以上摘自网络,不是原创,亲测可用。为避免云丢失,特复制一份。
以下是自己的配置
在VC项目中有完整的ICPTestUsingVTK配置
.在"C/C++"->"常规"->"附加包含目录"中,添加目录
d:/vtk2010/bin;d:/vtk2010/bin/Common;d:/vtk2010/bin/Utilities;d:/vtk2010/bin/VolumeRendering;d:/vtk2010/bin/Rendering;d:/vtk2010/bin/Charts;d:/vtk2010/bin/GUISupport/MFC;d:/vtk2010/bin/Utilities/vtkalglib;d:/vtk2010/source_code/Infovis;d:/vtk2010/source_code/Geovis;d:/vtk2010/source_code/Views;d:/vtk2010/source_code/Parallel;d:/vtk2010/source_code/VolumeRendering;d:/vtk2010/source_code/Hybrid;d:/vtk2010/source_code/Widgets;d:/vtk2010/source_code/Rendering;d:/vtk2010/source_code/Charts;d:/vtk2010/source_code/Rendering/Testing/Cxx;d:/vtk2010/source_code/IO;d:/vtk2010/source_code/Imaging;d:/vtk2010/source_code/Graphics;d:/vtk2010/source_code/GenericFiltering;d:/vtk2010/source_code/Filtering;d:/vtk2010/source_code/Common;d:/vtk2010/source_code/Utilities;d:/vtk2010/source_code/Common/Testing/Cxx;d:/vtk2010/bin/Utilities/vtklibproj4;d:/vtk2010/source_code/Utilities/vtklibproj4;d:/vtk2010/bin/Utilities/DICOMParser;d:/vtk2010/source_code/Utilities/DICOMParser;d:/vtk2010/bin/Utilities/vtkfreetype/include;d:/vtk2010/source_code/Utilities/vtkfreetype/include;d:/vtk2010/bin/Utilities/MaterialLibrary;d:/vtk2010/source_code/Utilities/MaterialLibrary;d:/vtk2010/bin/Utilities/verdict;d:/vtk2010/source_code/Utilities/verdict;d:/vtk2010/bin/Utilities/vtkhdf5;d:/vtk2010/source_code/Utilities/vtkhdf5;d:/vtk2010/bin/Utilities/vtkhdf5/src;d:/vtk2010/source_code/Utilities/vtkhdf5/src;d:/vtk2010/bin/Utilities/Cosmo;d:/vtk2010/source_code/Utilities/Cosmo;d:/vtk2010/bin/Utilities/VPIC;d:/vtk2010/source_code/Utilities/VPIC;d:/vtk2010/source_code/Utilities/utf8/source;d:/vtk2010/source_code/GUISupport/MFC;d:/vtk2010/source_code/Utilities/vtkalglib;%(AdditionalIncludeDirectories)
在链接器"->general"->"附加目录"中加入
d:\vtk2010\bin\bin\Release\;
在linker->input->附加依赖项中加入
vtkCommon.lib;vtkDICOMParser.lib;vtkexoIIc.lib;vtkexpat.lib;vtkFiltering.lib;vtkfreetype.lib;vtkftgl.lib;vtkGenericFiltering.lib;vtkGraphics.lib;vtkHybrid.lib;vtkImaging.lib;vtkInfovis.lib;vtkIO.lib;vtkjpeg.lib;vtklibxml2.lib;vtkmetaio.lib;vtkNetCDF.lib;vtkpng.lib;vtkRendering.lib;vtksqlite.lib;vtksys.lib;vtktiff.lib;vtkverdict.lib;vtkViews.lib;vtkVolumeRendering.lib;vtkWidgets.lib;vtkzlib.lib;.
后面为opencv的,可以不做考虑
\opencv210\lib\cv210.lib;.\opencv210\lib\cvaux210.lib;.\opencv210\lib\cxcore210.lib;.\opencv210\lib\highgui210.lib;.\woomvdisplay010\WoomvImageShow.lib;.\wmvroitools0.1\WMVisionROITools.lib;%(AdditionalDependencies)