VS2019中配置VTK8.2.0

说明

首先下载vtk源码,其次通过cmake编译生成VS中可以打开的.sln文件。再使用VS打开.sln文件,对vtk源码进行编译,生成库文件。
最终把库文件和一些源文件配置到VS中,即可使用VTK

1.需要的软件或工具

a.vtk源码 :https://vtk.org/download/
b.cmake安装包:https://cmake.org/download/
c.Visual Studio 2019

笔者选择了vtk8.2.0版本
在这里插入图片描述

2.Cmake
把下载的vtk源码解压缩,并在同级目录下新建两个文件夹:vtk-install和vtk-prefix

其中vtk-install是cmake配置后生成vs解决方案的地方,而vtk-prefix是存放vs编译后生成的一些库文件和头文件的地方
在这里插入图片描述

选择源文件和编译后的文件:
在这里插入图片描述
点击Configure,然后指定此项目的生成器。点击finish

在这里插入图片描述
编译时间大概几分钟。会报出红色,不用怕:
在这里插入图片描述
修改一些name的value:

a. CMAKE_INSTALL_PREFIX:改成vtk-pefix文件夹的路径
b. BUILD_EXAMPLES:里面是一些vtk的例子,可以勾选,也可以不勾选
c. 如果需要支持MFC或Qt开发,要不下图对应的选项勾上。

其它一般采用默认设置。

CMAKE_INSTALL_PREFIX所对应的目录:存放之后使用vtk时的一些动态库dll,二进制库lib,vtk的一些头文件之类的。

在这里插入图片描述

在这里插入图片描述
点击genarate,就会产生在vtk-install文件夹下产生vtk.sln文件。再点击Open Project,即可用VS打开vtk.sln文件。
在这里插入图片描述
此时cmake工作完成

3.用VS编译VTK
在这里插入图片描述

a. 把ALL_BUILD项目设置为启动项目,然后右键生成解决方案,注意编译Debug和Release两个版本
(这一步会编译所有的示例examples,如下图所示的example projects都会被编译) 初学者建议编译后,运行示例。以供参考学习。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

这个生成时间比较长,耐心等待。笔者总共花费了几十分钟。并且注意是要编译两版的,一版是Debug,一版是Release,编完默认的Debug后记得把工程切换到Release再编一下。
在这里插入图片描述

编译生成的文件在如下文件夹下:
在这里插入图片描述

b. 把INSTALL项目设置为启动项目,然后右键生成解决方案,注意编译Debug和Release两个版本

正常会在vtk-prefix文件下下生成我们需要头文件和库文件
在这里插入图片描述
这三个文件就是我们下一步需要的三个文件。

测试是否vtk编译成功

选中一个例子,比如Cube,设为启动项目。然后运行(Ctrl+F5),正常会出现一个正方体
在这里插入图片描述

4.在一个新项目中,配置使用VTK

新建一个项目

随便找个example复制一下它的代码,就拿这个Cube吧,Cube.cxx中便是它的代码。
在这里插入图片描述
把代码拷贝到新建的项目中,提示一大堆红色:
在这里插入图片描述
此时,要进行一些配置:

a.
在系统变量的PATH中,把bin文件夹的地址加进去
在这里插入图片描述

或者把bin文件夹下所有的库拷贝到:32位的地址是C:\Windows\System32,64位地址是:C:\Windows\SysWOW64。

注意决定于前面采用的x64编译,还是x86

或者把把bin文件夹下所有的库拷贝到与项目源文件.cpp同级的目录

b. VS,选择项目->属性,在VC++目录的包含目录中,把include文件夹的地址加进去,在库目录中,把lib文件夹的地址加进去

在这里插入图片描述
在这里插入图片描述
属性->链接器->输入:附加依赖项里添加D:\VTK\vtk-prefix\lib*.lib
在这里插入图片描述

配置完成,运行项目

报错
在这里插入图片描述
在源文件前,加上:

#include "vtkAutoInit.h" 
VTK_MODULE_INIT(vtkRenderingOpenGL2);     // VTK was built with vtkRenderingOpenGL2
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingFreeType);    // Build with vtkTextActor

此时在cpp的代码中最前面加入下面几行即可,这几行代码可以初始化指定的VTK模块,在之前的VTK.sln中,由于是Cmake配置的,CMake默认包含这些,但是其他编译器例如VS则并不包括,需要手动指定。指定的具体代码要根据用到的模块来写,如下面最后一行的VTK_MODULE_INIT(vtkRenderingFreeType);就是因为用到了vtkTextActor。
————————————————
版权声明:本文为CSDN博主「风烟倦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37996632/article/details/105879911

还有一种方法,可以起到上述代码同样作用:
属性->C/C+±>预处理器->预处理器定义
在这里插入图片描述

WIN32
_WINDOWS
_CRT_SECURE_NO_DEPRECATE
_CRT_NONSTDC_NO_DEPRECATE
_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_DEPRECATE
_SCL_SECURE_NO_WARNINGS
VTK_IN_VTK
vtkRenderingCore_INCLUDE="D:\VTK\vtk-install/CMakeFiles/vtkRenderingCore_AUTOINIT_vtkInteractionStyle_vtkRenderingOpenGL2.h"
CMAKE_INTDIR="Debug"
注意:vtkRenderingCore_INCLUDE改为自己的文件路径

继续运行,报错:
在这里插入图片描述

把此行代码。屏蔽即可。重新运行

在这里插入图片描述

  • 16
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做个好男人!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值