«

VTK安装及源码编译(Winxp + VS2010 + CMake2.8.6 + VTK5.8)

为了安装编译VTK,在网上找了一些相关资料作为参考,在源码编译过程中也遇到了一些问题,后解决,现在将笔记整理如下:

Winxp + VS2010 + CMake2.8.6 + VTK5.8

1、准备:

2、为vtk的安装新建个根文件夹,命名为"VTK5.8",在这个文件夹下新建四个文件夹,分别命名为 VTKSrc、VTKData、VTKDoc、Bin,将之前下载的源码包数据包文档包分别解压到前三个文件夹中。

3、安装vtk-5.8.0-win32-x86.exe,安装到根文件夹 VTK5.8 下。

4、打开CMake(CMake2.8\bin\cmake-gui.exe),

设置:

Source code目录:F:\Dev\SDK\VTK5.8\VTKSrc    
Build目录:F:\Dev\SDK\VTK5.8\Bin  (目录地址请根据自己电脑目录做更改)

然后configure,在弹出框中选择VS2010作为我们的编译器,然后Cmake自动描述需要的文件。

停下后,显示红色列表,接着开始修改cmake选项,手动勾上 buildsharedlibs、buildexamples,然后勾选cmake界面上方的Advanced,进入下一级,这时到下面重新找到vtkuseguisupport这一项勾选,再 configure,之后会出现 vtkuse_mfc,选择它勾选,再一直configure,直到红色消失。 最后Generate,产生相应的KTV.sln 解决方案。

( 相关说明:

5、打开 KTV.sln ,如果使用vs2010,在编译整个解决方案之前,需要注意:
1)请先找到VTKSrc\GUISupport\MFC\vtkMFCWindow.cpp ,找到类似以下源码并修改数值如下:

#ifndef WINVER
#define WINVER 0x0501
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501 // =_WIN32_WINNT_NT4
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0601 //=_WIN32_IE_IE60SP1
#endif

2)如果之前Cmake勾选了 build_examples,工程中含有VKT的examples,仅改上面代码还不够,还需要找到

  VTKSrc\Examples\GUI\Win32\vtkMFC\vtkDLG\stdafx.h
  VTKSrc\Examples\GUI\Win32\vtkMFC\vtkMDI\stdafx.h
  VTKSrc\Examples\GUI\Win32\vtkMFC\vtkSDI\stdafx.h
  VTKSrc\Examples\GUI\Win32\SampleMFC\stdafx.h

四个文件,每个文件下找到类似以下源码并修改数值如下:

#ifndef WINVER        
#define WINVER 0x0501    
#endif

#ifndef _WIN32_WINNT    
#define _WIN32_WINNT 0x0501    
#endif            

#if _MSC_VER >= 1300
#ifndef _WIN32_WINDOWS    
#define _WIN32_WINDOWS 0x0501 
#endif
#endif

#ifndef _WIN32_IE      
#define _WIN32_IE 0x0601  
#endif

3)如果不进行上述两步操作,在编译项目过程中会出现类似下面错误: fatal error C1189: #error : This file requires WIN32WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.

6、编译整个解决方案。
如果之前Cmake勾选了 buildexamples,工程中含有VKT的examples,在编译过程中,以下四个项目vtkDLG、vtkMDI、vtkSDI、Win32SampleMFC,可能还会出现类似下面的LINK链接错误: error LNK2019: 无法解析的外部符号 "_declspec(dllimport) public: static class...
称找不到vtkIO.dll

对应解决办法:在每个项目属性的链接器->输入->附加依赖项中添加入vtkIO.lib库,目录为:........\bin\Debug\vtkIO.lib

就此,基本的VKT安装及源码编译结束,编译产生的lib、dll链接库和执行文件都生成在VTK5.8\Bin\bin\Debug文件夹下。

分享