VS2013+CMake+VTK-8.1.0编译

1. 资料准备

1.1 VTK源码

这里需要使用VTK的源码,可以在这里去下载对应版本的源码包。

1.2 CMake

官网下载CMake Windows安装版本
CMake

2. CMake生成VS工程

解压VTK的安装包到一个目录下,之后打开CMake将source code选项定位到该位置
这里写图片描述
最后点击“Configure”,选择好编译器
这里写图片描述
等待其生成完成之后,就会出现下面这个样子的界面
这里写图片描述
下面是对这些参数的解释,PS: 这里没有编译其它程序语言的接口
BUILD_EXAMPLES —默认是关闭的,如果打开这个选项,则会编译VTK例子,同时VTK编译所需的时间也较长,占用的磁盘空间也较大。对于初学者来说,建议把这个选项打开。
BUILD_SHARED_LIBS —默认是关闭的,意味着VTK是静态编译;如果打开这个选项,则是动态编译。
BUILD_TESTING —默认是打开的,表示会编译VTK的测试程序。VTK里每个类都有对应的程序文件对该类进行测试,对于初学者而言,可以关闭掉这个选项,后续如有需要,可以再打开此选项。
VTK_DATA_ROOT —指向VTKData所在的路径。一般情况下,VTK能够自动搜索到,如果没有搜索到可以手动输入,在运行VTK的例子时需要用到这些数据。
CMAKE_INSTALL_PREFIX —这个选项表示VTK的安装路径,默认的路径是:C:/Program Files/VTK。该选项的值可不作更改,按默认值即可。
VTK_USE_QT —是否使用Qt。在这个系列里,我们使用Qt作为GUI开发工具,所以勾上该选项。
VTK_WRAP_JAVA、VTK_WRAP_PYTHON、VTK_WRAP_TCL —这三个选项是供准备使用Java、Python或者Tcl语言开发VTK工程的用户选择的。VTK由两个子系统组成,分别是C++类库和提供给Java、Tcl和Python来操作该类库的解释器工具,如果勾上以上三个选项,即会编译这些解释器工具。
BUILD_DOCUMENTATION —默认是关闭的,如果打开这个选项,则会编译VTK帮助文档,由于这个文档VTK已提供下载,所以可以不选。
VTK_USE_GUISUPPORT — VTK是否支持GUI,Windows下如果需要使用MFC开发的,需要勾选上这个选项。本教程在演示的时候也会把这个选项勾选,如果你确定不使用MFC,可以不用选择该选项。这个在8.1的版本里面没有了,选择有MFC的就可以了

配置好参数之后,再次点击“Configure”按钮,之后点击“Generate”按钮,得到
这里写图片描述
之后就可以看到生成的VS工程了
这里写图片描述
双击打开该工程

3. 编译VTK

打开工程文件之后选择”解决方案管理器“,选择ALL_BUILD工程,选择
这里写图片描述
当在编译MFC的时候出现了如下的错误:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(369,5): error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library. See http://go.microsoft.com/fwlink/p/?LinkId=286820 for more information.

对于这个问题是字符集的问题,可以通过官方下载这个进行解决。里面提供了VS2013和VS2015版本的下载链接
还有一个问题就比较坑了,是VTK源代码的问题:

Error   2   error C2661: 'vtkOpenGLRenderWindow::GetPixelData' : no overloaded function takes 5 arguments   D:\VTK-8.1.0\GUISupport\MFC\vtkMFCWindow.cpp    195 1   vtkGUISupportMFC

函数是需要6个参数,但是呢只提供了5个,这蛋疼的。。。-_-||,也就是下面这梁行代码

unsigned char *pixels =
    this->pvtkWin32OpenGLRW->GetPixelData(0,0,size[0]-1,size[1]-1,0,0);

官方的论坛上也有人发帖进行询问,这是网址
这里写图片描述
这坑爹的希望快点解决吧,ps:在后面加一个参数0倒是可以通过编译-_-||,正不正确那就不知道了
这个部分需要些时间,可以离开座位伸展下老腰-_-||。之后就可以看到编译成功
这里写图片描述
安装VTK,也是在“解决方案管理器”里面选择INSTALL工程
这里写图片描述
这个编译就很快了
这里写图片描述
最后得到的结果
这里写图片描述
大概有200多M的样子

猜你喜欢

转载自blog.csdn.net/m_buddy/article/details/79042039