VTK安装与配置补充

2023-11-05

本文参考:(https://blog.csdn.net/Robin__Chou/article/details/50476007)


1、CMake的安装

CMake安装是用来对VTK编译前的配置工作。此博客中使用的是CMake2.8。CMake的下载可到https://cmake.org/网站上进行下载。


2、VTK源码

VTK源码直接从VTK的官方网站上下载得到,此博客中下载的是vtk-5.10.1.zip和vtkdata-5.10.1.zip两个压缩包。其中vtk-5.10.1.zip是VTK的源码,vtkdata-5.10.1.zip是VTK使用中的数据文件,这个文件也可以不用下载。

http://www.vtk.org/download/

在D:\Program Files\目录下新建三个目录。将vtk-5.10.1.zip中的文件解压到VTKSrc文件夹,vtkdata-5.10.1.zip中的文件解压到VTKData文件夹。VTKBin文件夹用来放CMake产生的工程文件和编译后的文件。




解压完毕后各目录的结构如下:

VTKSrc




VTKData



3、CMake配置项目

打开CMake,输入源码和输出文件路径,然后进行配置。设置以下几个配置项:

1、BUILD_EXAMPLES  该选项位于BUILD分组中。该选项表示是否编译VTK中的例程。不勾选状态下时可以缩短编译的时间,需要学习VTK中自带例程的可以选择该项。这里不选择该项。

2、BUILD_SHARED_LIBS 同样位于BUILD分组中。选中代表编译生成DLL文件,也就是生成动态链接库,不选中时编译成静态库。

3、BUILD_TESTING  处于BUILD分组。选中代表编译测试代码。此处不选中,为了缩短编译时间。

4、CMAKE_INSTALL_PREFIX 处于CMAKE分组中,指向VTK的生成路径,这里使用其默认路径C:\Program Files (x86)\VTK。

5、VTK_DATA_ROOT 处于VTK分组中,VTKData.zip解压的路径,这里可以手动修改到D:\Program Files\VTKData。

6、VTK_USE_GUISUPPORT 处于VTK分组中,表示是否支持GUI。为了后续使用MFC界面,这里勾选该选项。

需要注意的是,在点击Config之后会出现VTK_USE_MFC选项,需要勾该选项再次进行Config。




Config之后没有红色标记的时候就可以进行Generate了。


4、在VS2010中编译项目

如果前面的步骤没有问题,在VTKBin目录下就会生成以下文件:




打开VTK.sln工程文件,然后打开“生成” -> "生成解决方案"。这时候项目就开始编译了,编译的时间依据电脑的性能而定,一般在半小时左右项目编译完成。

编译完成之后,按下图选择。



这时候会在我们之前选择的VTK生成目录下生成我们需要的lib文件,头文件,dll文件等等。由于默认情况下生成文件的目录是在C:\Program Files (x86)\VTK。可以到该目录下检查是否有我们想要的文件产生。后续我们需要用到的就是这三个文件夹下的内容了。




5、测试VTK编译结果


在编译完成之后,建立一个win32控制台应用程序来测试安装编译结果。

打开vs2010,新建一个win32控制台应用程序。创建完成之后,向项目中添加一个cpp文件。随后配置我们的项目。在菜单栏中选择视图->属性管理器。




由于目前使用的是Debug版本编译,所以在此我们只需要去设置Debug下的配置文件。双击打开Microsoft.Cpp.win32.User。在包含目录中添加VTK生成目录下的include文件夹,这里是C:\Program Files (x86)\VTK\include\vtk-5.10。在库目录中添加VTK生成目录下的lib文件夹,这里是C:\Program Files (x86)\VTK\lib\vtk-5.10。




配置完成后就可以再cpp文件中写入程序代码了。可以写入以下程序代码来测试程序。



  
  
  1. #include "vtkConeSource.h"
  2. #include "vtkPolyDataMapper.h"
  3. #include "vtkRenderWindow.h"
  4. #include "vtkCamera.h"
  5. #include "vtkActor.h"
  6. #include "vtkRenderer.h"
  7. #include "vtkProperty.h"
  8. #include <stdio.h>
  9. #include "windows.h"
  10. int main()
  11. {
  12. int k = 0 ;
  13. vtkConeSource *cone = vtkConeSource::New();
  14. cone->SetHeight( 3.0);
  15. cone->SetRadius( 1.0);
  16. cone->SetResolution( 10);
  17. vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();
  18. coneMapper->SetInputConnection(cone->GetOutputPort());
  19. vtkActor *coneActor = vtkActor::New();
  20. coneActor->SetMapper(coneMapper);
  21. vtkRenderer *ren1 = vtkRenderer::New();
  22. ren1->AddActor(coneActor);
  23. ren1->SetBackground( 0.1, 0.2, 0.4);
  24. vtkRenderWindow *renWin = vtkRenderWindow::New();
  25. renWin->AddRenderer(ren1);
  26. renWin->SetSize( 300, 300);
  27. int i = 0;
  28. for (;i< 360;++i)
  29. {
  30. renWin->Render();
  31. ren1->GetActiveCamera()->Azimuth( 1);
  32. Sleep( 10);
  33. }
  34. scanf( "%d",&k);
  35. cone->Delete();
  36. coneMapper->Delete();
  37. coneActor->Delete();
  38. ren1->Delete();
  39. renWin->Delete();
  40. return 0;
  41. }


这时候编译会发现有错误,那是因为找不到编译时候需要的lib文件。我们需要在此添加依赖库文件。菜单栏中选择项目->属性。打开链接器,选择输入。




在附加依赖项中添加程序中必要的lib文件。




这时候再去编译程序发现没有错误了,但是运行程序的时候会跳出没有安装必要的dll文件。这是程序无法找到运行时的动态链接库导致的。解决办法有两种:

1、将VTK生成目录下,也就是C:\Program Files (x86)\VTK\bin目录下的dll文件全部拷贝到C:\Windows\System32文件夹下。

2、或者添加系统环境变量。回到计算机桌面,右键计算机,属性,选中高级系统设置。选中高级选项卡。




点击环境变量,在PATH变量下加入C:\Program Files (x86)\VTK\bin。如果打开后没有PATH,可以自行添加PATH变量。如果打开后有PATH,且里面已经有内容,那么在添加的时候需要注意,每一个值之间是需要使用分号 ; 隔开的。(这里的分号要确保是在英文状态下输入的,也就是必需要是半角的字符。)

环境量配置完成后一般不会立即生效,这时可以重新启动电脑。

按照上述配置完成就可以运行程序了。运行结果如下。

















本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VTK安装与配置补充 的相关文章

  • golang操作MySQL的具体案例

    golang操作MySQL的具体案例 代码篇的基础操作 package main import fmt github com go sql driver mysql github com jmoiron sqlx type Profile
  • 云服务器只能显示控制台吗,云服务器控制台使用方法

    云服务器控制台使用方法 内容精选 换一换 用户在购买弹性云服务器时会选择弹性云服务器的规格及登录方式 如果选择密钥对登录方式 需要选择已有密钥对或创建新的密钥对 如果没有可用的密钥对 请在控制台创建新的密钥对进行使用 在云服务器控制台左侧导
  • Pytorch(GPU)配环境原理:cuda+cudnn+pytorch配环境的每一步到底干了些什么?

    作者 18届cyl 时间 2022 5 11 参考文章 https blog csdn net qq 42406643 article details 109545766 最近帮舍友配pytorch cuda cudnn环境的时候 回想起来
  • 《剑指offer》 java版本 牛客网全AC

    1 二维数组中的查找 public class Solution public boolean Find int target int array if array length 0 array 0 length 0 return fals
  • C# 利用反射实现消息转发处理

    C 利用反射实现消息转发处理 一 C 反射 二 代码 三 总结 一 C 反射 利用C 反射的特点 我们可以实现函数名来动态调用函数 通过拼接字符串达到消息处理的效果 配合xml可以实现流程可配置化 二 代码 以下是一个简单的示例 using
  • 我正在建造一座大教堂

    有个人经过一个建筑工地 问那里的石匠们在干什么 三个石匠有三个不同的回答 第一个石匠回答 我在做养家糊口的事 混口饭吃 第二个石匠回答 我在做整个国家最出色的石匠工作 第三个石匠回答 我正在建造一座大教堂 赵日磊点评 三个石匠的回答给出了三
  • axios的get、post请求params、data传参总结

    文章原文https www jianshu com p 7a24b5eed364 分类 get请求 params 基础类型接受 名字对应即可 method const params id 123456789 name 张三 test par
  • QMessageBox 设置中文按钮(返回值判断)

    QMessageBox 设置中文按钮 返回值判断 一 解决乱码 pragma execution character set UTF 8 二 按钮修改为中文 方法一 创建一个question弹出对话框 添加两个按钮 Yes和No QMess

随机推荐

  • C语言:指针和数组(看完拿捏指针和数组)

    目录 数组名的理解 一维数组 解析 字符数组 解析 解析 字符串数组 解析 解析 一级指针 解析 解析 二维数组 解析 指针笔试题 题一 一维数组 题二 结构体指针 题三 一维数组 题四 二维数组 题五 二维数组 题六 二维数组 题七 指针
  • python3中argparse模块详解

    python标准库sys模块 sys模块 用于提供对Python解释器相关的操作 sys argv 命令行参数List 第一个元素是程序本身路径 sys exit n 退出程序 正常退出时exit 0 sys version 获取Pytho
  • 【FFmpeg】 音视频编码详细流程

    目录 一 视频编码流程 二 FFmpeg编码流程 三 FFmpeg编码函数 四 FFmpeg编码的数据结构 五 FFmpeg数据结构简介 六 FFmpeg数据结构分析 七 编码视频数据 八 相关函数介绍 九 编码 代码具体实现 一 视频编码
  • SOTA model / SOTA result / SOTA模型究竟是什么?

    最近看机器学习 人工智能相关顶级会议的论文 看到了 SOTA 模型 本来以为是一个很厉害的模型 但是网上完全查不到 今天会心一击 终于想到 SOTA 是 state of the art 的缩写 SOTA model state of th
  • ModbusTcp和ModbusRtu

    ModbusTcp和ModbusRtu 自己实现的modbusTCP主从站和RTU主从站 纯C语言实现 未调用第三方库 工程下载链接 modbusTcp主从站和RTU主从站 1 何为Modbus通信协议 1 1 Modbus基本介绍 Mod
  • Proteus元件库元件名称及中英对照

    Proteus元件库元件名称及中英对照 AND 与门 ANTENNA 天线 BATTERY 直流电源 BELL 铃 钟 BVC 同轴电缆接插件 BRIDEG 1 整流桥 二极管 BRIDEG 2 整流桥 集成块 BUFFER 缓冲器 BUZ
  • 油猴脚本怎么那么难找教程?

    号称好用 一个sleep我翻了全网一个小时 function use strict function go 定义函数 document querySelector video playbackRate 16 window setTimeou
  • Unity3D集成腾讯语音GVoice SDK

    简述 我们项目中用到了实时语音功能 在最初语音 SDK 技术选型的时候测试过融云 声网和腾讯的 GVoice 融云和声网我都在我们项目中使用过 但是效果都不如王者荣耀游戏中的实时语音效果 这两天好好研究了一下腾讯的 GVoice 终于成功集
  • 永恒之蓝漏洞利用及攻击

    一 基础知识介绍 1 何为永恒之蓝 永恒之蓝 Eternal Blue 爆发于2017年4月14日晚 是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限 以此来控制被入侵的计算机 甚至于2017年5月12日 不法分子通过改造
  • 如何从github拉取代码(入门篇)

    一 安装 Git Git 可以在多种操作系统上使用 包括 Windows macOS 和 Linux 以下是在 Windows 上安装 Git 的步骤 访问 Git 的官方网站 https git scm com downloads 在网站
  • POJ - 3253 Fence Repair(哈夫曼树,优先队列)

    题目 Farmer John wants to repair a small length of the fence around the pasture He measures the fence and finds that he ne
  • 信号与槽的详解

    以前也写过这方面的知识 但是因为都是参照着别人的文章来写的 就是很虚 很浮夸 今天下午我又好好看了一下这方面的知识 查阅了一些资料 现在来写写我自己的发现 接下来分为四大小点 一 信号和槽的基本认识 当对象的内部状态发生改变 信号就被发射
  • 20220906工作问题学习记录

    今天 在解决一个项目中的BUG问题的时候 遇到了需要过滤接口返回字段数据中的换行符 n 这里顺便 需要对php语言中的str replace 函数进行使用 做一下学习记录 由于原字符串是使用 来进行包裹的 所以 在使用str replace
  • C#之Console输入输出实用的

    潘鹏在CSDN上原创 如其他网站转载请注意排版和写明出处 1 Console Beep 发出蜂鸣声 2 Console Title 控制台的标题 3 Console Write 输入 4 Console WriteLine 输入 遇ente
  • Linux下GDB调试程序

    1 什么是GDB GDB 全称 GNU Debugger 是GNU工程师为GNU操作系统开发的调试器 它可以用于调试C C Objective C Pascal Ada等语言编写的程序 2 GDB的使用条件 在程序编译的时候 添加响应的调试
  • Linux: ARM32各CPU模式下栈配置

    文章目录 1 前言 2 背景 3 ARM32 中断向量表 和 中断处理流程 3 1 ARM32 中断向量表 3 2 ARM32 中断处理流程 4 ARM32 各CPU模式下的栈配置 4 1 SVC模式下各CPU栈配置 内核栈配置 4 1 1
  • java中score用法,Lucene 8.x 使用 FunctionScoreQuery 实现自定义的文档评分

    在使用不管是 Lucene 或者 ElasticSearch 进行全文搜索中 检索到文档很简单 但是把搜索者最想要的结果排在最前面 这是最具挑战性的 我们举个最简单的例子 假设我们需要做一个博客搜索 当我们用 Lucene 默认的匹配度进行
  • 怎么看服务器是中毒了还是被攻击?

    服务器是企业或个人重要的信息系统设备之一 它的正常运行对于企业和个人的业务和日常生活都非常重要 然而 服务器也很容易成为黑客攻击的目标 一旦遭到攻击 会对系统的正常运行和数据安全产生严重影响 在服务器出现异常情况时 如何判断是中毒还是被攻击
  • JSTL——jstl标签简介

    文章目录 1 jstl简介以及jstl标签库导入 2 set标签 3 if标签 4 choose when标签 5 forEach标签 1 jstl简介以及jstl标签库导入 1 jstl全称Jsp Standarded Tag Libra
  • VTK安装与配置补充

    本文参考 https blog csdn net Robin Chou article details 50476007 1 CMake的安装 CMake安装是用来对VTK编译前的配置工作 此博客中使用的是CMake2 8 CMake的下载