需要的环境及文件
- 平台:win10
- 已安装好的Visual Studio,建议2017及2019。vs主要是用来编译VTK,最后生成我们想要的库文件,头文件之类的。
- 已安装好的Qt,建议版本5.9或5.12
- cmake-gui,如未安装可参照下面的教程。cmake是用来把下载下来的VTK源码配置生成vs的解决方案的,好让vs去打开编译。
1.下载VTK和cmake
VTK下载地址:https://vtk.org/download/
cmake下载地址:https://cmake.org/download/
VTK下载Lasted Release吧,当然之前的旧版本也可以,选择Source下的.zip版本,tar.gz是Linux的。cmake记得下载.msi后缀的,这里选择64位的即win64,下载好后直接双击默认下一步安装即可。
接着把下载下来的VTK压缩文件解压,进入到目录中,再创建两个文件夹分别叫vtk-install和vtk-prefix,其中vtk-install是cmake配置后生成vs解决方案的地方,而vtk-prefix是存放vs编译后生成的一些库文件,头文件的地方,这也是我们最终需要的东西。
2.在cmake中设置VTK,生成vs的项目
选择源码目录和编译后的目录,然后点击左下角的Configure按钮,这时会让选择vs版本,我这里装的是vs2019所以选择此选项,随后点击Finish便开始了第一次Configure。注意,在下图的第二个框中是可以选择编译的版本的(arm,32位,64位等),默认是64位的。
第一次Configure应该要挺长时间,5-10分钟吧,具体看电脑的处理器性能,这只是第一次,后面还有好几次,因为需要继续改参数配置,第一次的Configure过后,会出现下图所示的一片红色,这个不用担心,这里需要修改的地方有三处,分别是:
- BUILD_EXAMPLES:生成一些vtk官方的examples,帮助理解学习,当然不选择也没事;
- CMAKE_INSTALL_PREFIX:这里存放之后使用vtk时的一些动态库dll,二进制库lib,vtk的一些头文件之类的。图上此项的位置还是默认的,没有修改,应该改为刚创建的那个vtk-pefix文件夹的路径;
- VTK_Group_Qt:我这里需要在Qt中使用vtk,所以选择了此项。
修改完之后继续Configure,这时候肯定会出现下图的红色,因为第一次的时候选择了VTK_Group_Qt,现在要把Qt安装目录中的cmake目录填进去,下图中的目录是我自己的Qt安装目录,注意更改。
接着第三次Configure,这时候会出现下图中的这些,这个不用管他不用修改,直接再点一次Configure,直到全部变成白色的界面为止。
在cmake的最下面信息输出处,如果输出一些warning警告的话不改也没事,不过最好根据提示修改一下,我这里偷懒,先不改了,先编译出来最要紧。只要下面显示Configuring done Generating done就好。
这时候再点最后一个按钮,Open Project,这时候会打开vs加载整个vtk解决方案,cmake的任务也到此结束。
3.用vs编译vtk
进入到vs之后,打开VTK-install文件夹中的vtk.sln会打开整个项目,这时候右键解决方案名,按下图所示的步骤先设为启动项目再生成,这个生成时间比较长,可能要半个小时到一个小时,耐心等待。并且注意是要编译两版的,一版是Debug,一版是Release,编完默认的Debug后记得把工程切换到Release再编一下。
生成成功后,重复设为启动项目->生成的步骤给INSTALL
最后等INSTALL也生成成功了,再随便选一个其中的examples设为启动项目,ctrl+f5运行它,如果出现图像了说明整个的编译结束完成了。
当然以上的只是一个自带的example,具体如何使用编译好的VTK去写程序,请看下一章:https://blog.csdn.net/qq_37996632/article/details/105879911
编译出的文件目录说明
- bin:动态链接库DLL
- include:vtk的头文件
- lib:静态库lib
- plugins:在Qt Designer中使用的图形化的QVTKWidget,不过没啥用,已经被QVTKOpenGLWidget,QVTKOpenGLNativeWidget等淘汰了
- share:里面就一个doc,没啥用
最主要是bin,include,lib,其中include是Debug和Release通用的,bin和lib要分为Debug和Release两版 ,一般在项目中使用的时候组织方式如下图所示。
下面是我已经编译好的,已测可以运行的,度盘链接如下:
链接:https://pan.baidu.com/s/1B6wzDfuNCGTO0DF48wQqZg
提取码:kvln