VTK的安装与配置

VTK的安装与配置
【注】如果是Visual Studio2008 Express版本,则不支持MFC,在稍后的编译过程中,如果选择了VTK_USE_MFC, 编译中会出错。所以建议大家装professional版本的Visual Studio 2008. 如果装了express版本,那么后面不要选VTK_USE_MFC.
1. 准备文件
cmake-2.8.6-win32-x86.exe ## http://www.cmake.org/files/v2.8/cmake-2.8.6-win32-x86.exe
vtk-5.8.0-win32-x86.exe ## http://www.vtk.org/files/release/5.8/vtk-5.8.0-win32-x86.exe
vtk-5.8.0.zip ## http://www.vtk.org/files/release/5.8/vtk-5.8.0.zip
vtkdata-5.8.0.zip ## http://www.vtk.org/files/release/5.8/vtkdata-5.8.0.zip
vtkDocHtml-5.8.0.tar.gz [OPTIONAL] ## http://www.vtk.org/doc/release/5.8/vtkDocHtml-5.8.0.tar.gz
2. 安装过程
2.1 安装cmake-2.8.6-win32-x86.exe
2.2 安装vtk-5.8.0-win32-x86.exe,选择安装的位置,比如D:\Program Files\VTK 5.8.0,运行安装完之后,会在该目录下生成几个文件夹,然后最好手动再添加几个文件夹,最后确保该目录下包含以下几个文件夹(已经存在的不要删除,不存在的自己手动添加上): bin, lib, VTKDATA, VTK,然后将vtkdata-5.8.0.zip 解压到VTKDATA文件夹中,vtk-5.8.0.zip解压到VTK文件夹中。
2.3 编译VTK
双击cmake-gui.exe,设置Where is the source code为D:/Program Files/VTK 5.8.0/VTK,设置Where to build the binaries为D:/Program Files/VTK 5.8.0/bin,意思就是把VTK文件夹中的源代码编译为二进制文件存放在bin文件夹中。
点击Configure,选择Visual Studio 9 2008.之后,自己手动将BUILD_SHARED_LIBS,BUILD_EXAMPLES和BUILD_TESTING打钩。还有对QT的支持,将VTK_INSTALL_THIRD_PARTY_LIBRARIES,VTK_USE_DISPLAY,VTK_USE_CHARTS,VTK_USE_GUISUPPORT,VTK_USE_QT,然后configure,选择VTK_USE_MFC,VTK_USE_QTCHARTS,再次configure,直到红色褪去。然后generate。
【注】"CMake 提供一个用户界面,用户可以定制某些变量,其中比较重要的是 BUILD_SHARED_LIBS,根据它的选择可以生成 VTK 的静态库或者动态链接库。如果编译成静态库,那么在开发应用程序时要将相应库代码加入可执行程序;如果是动态库,则可执行程序与动态链接库是分离的。用动态库的好处是可以减小主程序的体积,缺点是可执行程序不能独立运行。不过在有些情况下,因为某些专利算法在商业用途里只能授权使用,所以 VTK 提供的部分代码只能以动态链接库的方式使用,所以应该熟悉编译动态链接库的方法。"
2.4 生成解决方案
用visual studio 2008打开D:\Program Files\VTK 5.8.0\bin\Utilities\MaterialLibrary\MaterialLibrary.sln, 右键点击All_BUILD选Rebuild;
用visual studio 2008打开D:\Program Files\VTK 5.8.0\bin\vtk.sln,rebuild。
【注】此时vtkDlg,vtkSDI,vtkMDI,win32SampleMFC四个项目编译无法通过。需要这么修改:
分别右键单击项目 -> Properties -> Linker -> Input -> Additional Dependencies,添加vtkIO.lib。
2.5 添加环境变量
在path变量中添加:D:\Program Files\VTK 5.8.0\bin\bin\Debug
2.6 测试及配置
对于新建的项目,为了使用VTK,必须在Project->Property Page->C/C++->General->Additional Include Files中添加
"D:\PROGRAM FILES\VTK 5.8.0\bin";"D:\PROGRAM FILES\VTK 5.8.0\bin\Common";"D:\PROGRAM FILES\VTK 5.8.0\bin\Utilities";"D:\PROGRAM FILES\VTK 5.8.0\bin\VolumeRendering";"D:\PROGRAM FILES\VTK 5.8.0\bin\Rendering";"D:\PROGRAM FILES\VTK 5.8.0\bin\Charts";"D:\PROGRAM FILES\VTK 5.8.0\bin\GUISupport\MFC";"D:\PROGRAM FILES\VTK 5.8.0\bin\Utilities\vtkalglib";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Infovis";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Geovis";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Views";"D:\PROGRAM FILES\VTK 5.8.0\vtk\VolumeRendering";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Hybrid";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Widgets";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Rendering";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Charts";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Rendering\Testing\Cxx";"D:\PROGRAM FILES\VTK 5.8.0\vtk\IO";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Imaging";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Graphics";"D:\PROGRAM FILES\VTK 5.8.0\vtk\GenericFiltering";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Filtering";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Common";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Utilities";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Common\Testing\Cxx";"D:\PROGRAM FILES\VTK 5.8.0\bin\Utilities\vtklibproj4";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Utilities\vtklibproj4";"D:\PROGRAM FILES\VTK 5.8.0\bin\Utilities\DICOMParser";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Utilities\DICOMParser";"D:\PROGRAM FILES\VTK 5.8.0\bin\Utilities\vtkfreetype\include";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Utilities\vtkfreetype\include";"D:\PROGRAM FILES\VTK 5.8.0\bin\Utilities\vtknetcdf";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Utilities\vtknetcdf";"D:\PROGRAM FILES\VTK 5.8.0\bin\Utilities\vtkexodus2\include";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Utilities\vtkexodus2\include";"D:\PROGRAM FILES\VTK 5.8.0\bin\Utilities\MaterialLibrary";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Utilities\MaterialLibrary";"D:\PROGRAM FILES\VTK 5.8.0\bin\Utilities\verdict";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Utilities\verdict";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Utilities\utf8\source";"D:\PROGRAM FILES\VTK 5.8.0\vtk\GUISupport\MFC";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Utilities\vtkalglib";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Utilities\ftgl\src";"D:\PROGRAM FILES\VTK 5.8.0\bin\Utilities\ftgl";"D:\PROGRAM FILES\VTK 5.8.0\vtk\Infovis";
在Project->Property Page->Linker->General->Additional Library Directories中添加D:\Program Files\VTK 5.8.0\bin\bin\Debug
在Project->Property Page->Linker->Input->Additional Dependencies中添加opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib vtkCommon.lib vtkDICOMParser.lib vtkexoIIc.lib vtkexpat.lib vtkFiltering.lib vtkfreetype.lib vtkftgl.lib vtkGenericFiltering.lib vtkGraphics.lib vtkHybrid.lib vtkImaging.lib vtkIO.lib vtkjpeg.lib vtkNetCDF.lib vtkpng.lib vtkRendering.lib vtksys.lib vtktiff.lib vtkVolumeRendering.lib vtkWidgets.lib vtkzlib.lib vtkMFC.lib vtkInfovis.lib
大功告成!!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

你可能感兴趣的:(C++/MFC)