VTK配置步骤(WIN7 64位 + VS2012 + VTK-5.10.1)

由于项目中需要用到VTK,上周三就开始编译VTK源码,中间出现了一系列问题。首先是下载的高版本代码顺利编译后,自己新建的工程总是提示链接错误,尽管所有的库文件都加入了,还是不正确。之后下载了vtk较低版本5.8.0,源码有几处错误,参考新版本修改后,依然是自己新建工程链接错误。就这样一直到周五都没有成功。在群里也没能得到解决办法,到是发现大家最初配置时都出现过很多问题,有的一个月才配置好,简直吓尿了。幸好偶然有一位仁兄告诉了我他的成功配置版本,就是vs2012+vtk5.10.1,但是他的是WIN8 64位,于是周末在家沉思两天后,决定先用这个版本在WIN7上试下,不行就上WIN8去试。周一的上午我很清醒,满血的感觉就是好,于是我又开始倒腾起来了,没想到啊,成功啦。
//***********************

配置方法很多很多,这只是我的方法,也是参考了很多人的教程之后的结果,也许当你完全没辙时,能帮上一点忙。
1.下载相关软件

vtk-5.10.1.zip和vtkdata-5.10.1.zip

http://www.vtk.org/VTK/resources/software.html


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。


3.以管理员身份打开E:\vtk\cmake-2.8.12.2-win32-x86\bin下的cmake-gui.exe,在source code和binaries里填上如图的路径后,点Configure。选择Visual Studio 11编译器,虽然是64位但是有教程建议不要选Visual Studio 11 win64,我也没有试过。在Configure过程中会出现一些warning,不用管。等Configure完成以后,有几项需要修改,如下:



vtk_data_root,浏览到例子数据所在位置,E:\vtk\VTKData
build_examples:勾选上则编译例子,建议选择
build_testing: 勾选上则编译测试代码,建议选择
vtk_use_parallel:勾选(并行计算相关的,按需求选择)
build_shared_libs: 设置为on,将会多生成 dll 文件,这些dll需要拷到Windows/SysWOW64目录下。要是用静态库编程,即off时,应用程序可以独立运行,尺寸也比较大,要是用动态库编程, 即on时,应用程序必须找到动态库才能运行,但尺寸可以做得比较小。我选择的是on。
vtk_use_GUIsupport:勾选
再次Configure后,有一项红色为vtk_use_mfc,再勾选后Configure。
以上正确完成后点击Generate。此过程中可能会出现SAFESEH映像不安全的问题,只要在相应项目的链接器命令行加入/SAFESEH:NO即可。完成后关闭CMake。


4.用VS2012打开E:\vtk\VTKbin\Utilities\MaterialLibrary目录下的 MaterialLibrary.sln 文件,右键点击All_Build选择重新生成。把E:\vtk\VTKbin\bin\Debug里生成的vtksys.dll拷贝到Windows\SysWOW64下。或者打开VS2012的属性管理器,双击任意“Microsoft.Cpp.Win32.user”,弹出属性页,在里面VC++目录的 Library Directories 中将bin文件夹中的Debug包括进去。


5.打开E:\vtk\VTKbin下的VTK.sln,右键点击All_Build选择重新生成。


6.完成这些之后可能会出现涉及MFC的错误,解决方法如下:
①在解决方案中分别找到vtkDLG,vtkMDI,vtkSDI这三个项目,右键→Properties→Configuration Properties→Linker→Input→在Additional Dependencies中添加..\..\..\..\..\bin\Debug\vtkIO.lib
②再找到Win32SampleMFC这个项目,与以上类似,添加..\..\..\..\bin\Debug\vtkIO.lib这样,就为这些项目加入了vtkIO.lib库。
这时,如果选择项目Cone6,Win32SampleMFC都可以调试通过,应该就没有问题了。


7.到此还没有完成哦,自己新建的项目还需要配置。
新建项目Test
①配置附加包含目录,位于配置属性→C/C++常规,这一步根据项目头文件来选择加入E:/vtk/VTKbin和E:/vtk/VTKsourcecode下的哪些文件夹。
②附加依赖项,位于链接器→输入,拷入下述内容。

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
E:\VTK\VTKbin\bin\Debug\vtkRendering.lib
E:\VTK\VTKbin\bin\Debug\vtkIO.lib
E:\VTK\VTKbin\bin\Debug\vtkDICOMParser.lib
E:\VTK\VTKbin\bin\Debug\vtkNetCDF_cxx.lib
E:\VTK\VTKbin\bin\Debug\vtkNetCDF.lib
E:\VTK\VTKbin\bin\Debug\vtkmetaio.lib
E:\VTK\VTKbin\bin\Debug\vtksqlite.lib
E:\VTK\VTKbin\bin\Debug\vtkpng.lib
E:\VTK\VTKbin\bin\Debug\vtktiff.lib
E:\VTK\VTKbin\bin\Debug\vtkzlib.lib
E:\VTK\VTKbin\bin\Debug\vtkjpeg.lib
E:\VTK\VTKbin\bin\Debug\vtkexpat.lib
E:\VTK\VTKbin\bin\Debug\vtkGraphics.lib
E:\VTK\VTKbin\bin\Debug\vtkverdict.lib
E:\VTK\VTKbin\bin\Debug\vtkImaging.lib
E:\VTK\VTKbin\bin\Debug\vtkFiltering.lib
E:\VTK\VTKbin\bin\Debug\vtkCommon.lib
E:\VTK\VTKbin\bin\Debug\vtksys.lib
E:\VTK\VTKbin\bin\Debug\vtkftgl.lib
E:\VTK\VTKbin\bin\Debug\vtkfreetype.lib
E:\VTK\VTKbin\bin\Debug\vtkMFC.lib
E:\VTK\VTKbin\bin\Debug\vtkWidgets.lib

好了,这时在Test\Debug下就应该能看到例子程序运行成功的样子了。

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