VTK的安装并运行一个项目
1.CMAKE安装
要安装VTK的话首先需要安装CMAKE,CMAKE的官网: https://cmake.org/download/
进入Cmake下载网页,可以看到很多版本,我们选择最新的,在文件列表中,我们选择最便于安装的msi,如下图所示。

安装的时候我们选择添加到系统变量(for all users),这样就省去了手动添加环境变量的步骤。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J1a5f7NU-1668152353776)(C:\Users\代\Desktop\CSDN博客\VTK的安装\image-20221111145023048.png)]](https://i-blog.csdnimg.cn/blog_migrate/0cb35e71b2038678b57762d352d8072b.png)
访问安装路径中的bin里面的cmake-gui可以看到图形界面工具
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OafEVuCu-1668152353777)(C:\Users\代\Desktop\CSDN博客\VTK的安装\image-20221111145250653.png)]](https://i-blog.csdnimg.cn/blog_migrate/eaa54dc556cdf55af594b509e7703e2d.png)
2.VTK的安装
我们首先到vtk官网上下载(https://www.vtk.org/download/),下载source里面的VTK-8.2.0.zip

接着把下载下来的VTK压缩文件解压,进入到目录中,再创建两个文件夹分别叫vtk-install和vtk-prefix,其中vtk-install是cmake配置后生成vs解决方案的地方,而vtk-prefix是存放vs编译后生成的一些库文件,头文件的地方,这也是我们最终需要的东西。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1CgjbnFQ-1668152353778)(C:\Users\代\Desktop\CSDN博客\VTK的安装\image-20221111150430705.png)]](https://i-blog.csdnimg.cn/blog_migrate/855887b6a10254fd7c433e206cfe6eeb.png)
安装好后,打开cmake的gui,依次填入,第一个框是VTK的安装路径,第二个是VTK生成的代码,要自己提前创建一个文件夹来装生成的文件和代码。然后选择下面的两个选项,一个是分组展开,一个是展开复杂的选项。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TDSrcPid-1668152353779)(C:\Users\代\Desktop\CSDN博客\VTK的安装\image-20221111145802449.png)]](https://i-blog.csdnimg.cn/blog_migrate/19d18f091ebd9839d91f564652859c15.png)
选择好后点击下面的configure
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ATdRSk6-1668152353780)(C:\Users\代\Desktop\CSDN博客\VTK的安装\image-20221111145934979.png)]](https://i-blog.csdnimg.cn/blog_migrate/a5f3e9ecb654853ebd553d0157d9caca.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fe0Ddt1P-1668152353781)(C:\Users\代\AppData\Roaming\Typora\typora-user-images\image-20221111150050274.png)]](https://i-blog.csdnimg.cn/blog_migrate/9158a5064072fc7047a7f9c1ac8f9d7d.png)
接下来点击左下角的Configure,刚刚提到如果生成路径不存在就会提示你创建,选择同意就可以了,接下来需要等上5分钟左右,之后会看到界面满是红色,这代表Cmake程序按照指定的CmakeLists.txt文件进行编译后,有很多内容需要进行确认,备选的项目很多,大多数我们保持默认选项就可以,我们着重注意以下几个:
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就好。然后再点击Generate,最后open project。
3.用vs编译vtk
进入到vs之后,打开VTK-install文件夹中的vtk.sln会打开整个项目,这时候右键解决方案名,按下图所示的步骤先设为启动项目再生成,这个生成时间比较长,可能要半个小时到一个小时,耐心等待。并且注意是要编译两版的,一版是Debug,一版是Release,编完默认的Debug后记得把工程切换到Release再编一下。

生成成功后,重复设为启动项目->生成的步骤给INSTALL

最后等INSTALL也生成成功了,再随便选一个其中的examples设为启动项目,ctrl+f5运行它,如果出现图像了说明整个的编译结束完成了。

4.用编译好的VTK在vs中写程序
首先新建一个vs的控制台项目,名字随意,默认下一步创建即可。

方便起见,这里从上章中的VTK.sln中随便找个example复制一下它的代码,就拿这个Cube吧,Cube.cxx中便是它的代码。

这时候看到的应该都是红色没有导入依赖,这时候我在网上看到有人将dll文件直接导入到了项目的根目录中,但是我找到另一个办法就是:
右击project -> 属性 -> 调试 -> 工作目录 修改为那个文件夹的路径即可
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PBgtqmTG-1668152353782)(C:\Users\代\Desktop\CSDN博客\VTK的安装\image-20221111150809713.png)]](https://i-blog.csdnimg.cn/blog_migrate/12821e453dccebf9b20ac28dda1c4046.png)
然后我们在新项目中配置VTK:
a、设置vc++的包含目录,在其中添加vtk安装路径下的include路径,如:
D:\VTK\vtk-prefix\include\vtk-8.2
切记不要删除路径前面的那些带$的相对路径,你要在那些路径后面打上一个";"(也是分号)然后继续写你自己的路径,不然会出错
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YvH5x5Lw-1668152353783)(C:\Users\代\Desktop\CSDN博客\VTK的安装\image-20221111151251802.png)]](https://i-blog.csdnimg.cn/blog_migrate/239e1c6c7889cacefa0d5e21aa92b5ff.png)
b、设置vc++的库目录,在其中添加vtk安装路径下的lib路径,如:
D:\VTK\vtk-prefix\lib
切记不要删除路径前面的那些带$的相对路径,你要在那些路径后面打上一个";"(也是分号)然后继续写你自己的路径,不然会出错
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lUtkPwD9-1668152353783)(C:\Users\代\AppData\Roaming\Typora\typora-user-images\image-20221111151403057.png)]](https://i-blog.csdnimg.cn/blog_migrate/6994d0ffa372c8e20f08868b23046cff.png)
c、在链接器->输入->附加依赖项中添加使用的lib项,如:
D:\VTK\vtk-prefix\lib*.lib
切记不要删除路径前面的那些带$的相对路径,你要在那些路径后面打上一个";"(也是分号)然后继续写你自己的路径,不然会出错
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Lr7p7Br-1668152353784)(C:\Users\代\Desktop\CSDN博客\VTK的安装\image-20221111151554279.png)]](https://i-blog.csdnimg.cn/blog_migrate/16b91721f5ca4c9f70c7bbfc42ba9a49.png)
然后确认后就可以看到引用不会爆红了
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QxbLlh2o-1668152353785)(C:\Users\代\Desktop\CSDN博客\VTK的安装\image-20221111151758028.png)]](https://i-blog.csdnimg.cn/blog_migrate/1fb914dc5dc2c0ebad53383435125edf.png)
此时可以按ctrl+f5运行了,但很可能出现如下图所示的错误

此时在cpp的代码中最前面加入下面几行即可,这几行代码可以初始化指定的VTK模块,在之前的VTK.sln中,由于是Cmake配置的,CMake默认包含这些,但是其他编译器例如VS则并不包括,需要手动指定。指定的具体代码要根据用到的模块来写,如下面最后一行的VTK_MODULE_INIT(vtkRenderingFreeType);就是因为用到了vtkTextActor。
#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingFreeType); // Build with vtkTextActor
最后可以输出出来!
GL2
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingFreeType); // Build with vtkTextActor
最后可以输出出来!
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ViflMyCo-1668152353786)(C:\Users\代\Desktop\CSDN博客\VTK的安装\image-20221111153616948.png)]](https://i-blog.csdnimg.cn/blog_migrate/2448440f2b617d9e27bcc07cc69032a7.png)
本文详细指导如何通过CMAKE安装VTK,并在Visual Studio中配置和编译项目,涉及步骤包括CMAKE配置、VTK源码安装、VS编译及使用编译后的VTK开发程序。重点讲解了配置项设置和常见问题解决技巧。
653





