VTK8.2.0编译(Qt 5.14.2+VS2017)

VTK8.2.0编译(Qt 5.14.2+VS2017)

关于Qt和MSVC的安装,可以参考文章(Qt+MSVC2017)。

本篇VTK在Qt+MSVC的配置下的编译。VTK 以8.2.0为例。

一、环境变量的配置

我们打开电脑的环境变量,可以看到没有Qt相关的路径的配置:

我们把Qt相关的变量增加一下(主要以64位为主,我们也就以此为例了),把msvc的放第一个:

二、下载VTK

我们去VTK官网下载VTK(Download | VTK),点击此处下载

下载vtk-8.2.0.zip。

三、下载cmake-gui

点击网址(Download CMake)进到cmke的官网,点击此处进入

下载3.30版本,zip文件解压出来可以直接使用。

四、开始编译

我们把vtk的文件解压出来,创建vtk-source文件夹,把解压出来的内容放进来,

另外再创建vtk-build文件夹

打开cmake-gui

点击Configure,弹出如下对话框

按照上述选择,并点击Finish,开始构建,如下图:

完成后,我们可以看到界面如下,会显示红色的内容,如下图所示:

1、勾选BUILD_EXAMPLES

2、在CMAKE_INSTALL_PREFIX中指定编译后库文件生成的文件夹。

3、设置debug版本的标识符(加_d或其他你想加的都可以)

4、设置支持Qt选项

5、设置完成之后,我们点击“Configure”按钮

开始新一轮的构建

构建结束如下所示

我们可以看到Ungrounded Entries下的Qt路径为msvc2017_64的路径:

注意:如果是MinGW的路径,们需要把Ungrounded Entries下的mingw路径改成msvc的路径。

VTK的Qt对应的版本确定和我们Qt的保持一致:

然后再次点击Configure按钮,执行结束之后,红色信息消失了:

然后还需要配置界面支持QtOpenGL,然后点击“Configure”按钮。

执行完成后如下图:

确定Qt5的opengl路径是不是我们msvc所在的路径(如果不是你需要改为msvc所在的路径):

然后再次点击”Configure“,执行结束之后如下图所示:

然后我们点击”Generate“按钮,开始生成:

生成结束之后:

同时我们可以在我们选择的build路径下生成的sln项目文件,如下图所示:

五、VS2017编译

我们使用vs2017打开sln文件,

然后,我们选择生成->批生成->ALL_BUILD(x64,release)->生成,开始批生成

批量生成需要一段时间,需要耐心等待,build成功之后:

然后开始执行install操作,如下图所示:

执行结束之后,如下图所示:

我们可以看到生成的release模式下的文件:

Note:Debug模式下的生成,你选择Debug在执行一次上述的步骤即可。

六、VTK plugin配置

在Qt中配置我们编译出来的VTK

1、把VTK-install\plugins\designer路径下的QVTKWidgetPlugin.dll

2、VTK-build\lib\Release路径下的QVTKWidgetPlugin.exp和QVTKWidgetPlugin.lib

3、把上面的三个文件放到D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\plugins\designer路径下,如下图所示:

我们打开Qt Designer,可以看到VTK的控件了

文章没有授权,禁止转载!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/392765.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#串口通信的实现

1、实现代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO.Ports; using System.Linq; using System.Security.Cryptography; using System.Security.Policy; using System.Text…

人工智能时代,程序员如何保持核心竞争力?

在人工智能时代,程序员如何保持核心竞争力? 在今天这个人工智能迅速发展的时代,程序员面临着前所未有的机遇和挑战。随着AIGC(如ChatGPT、MidJourney、Claude等)大语言模型的兴起,以及AI辅助编程工具的普及…

Axure八大优质Web端系统框架模版

在当今数字化转型的浪潮中,Axure作为一款强大的原型设计工具,以其快速、直观和易用的特点,成为了众多设计师和产品经理的首选。本文将详细介绍六套基于Axure制作的智慧系统原型框架模版,包括智慧园区、智慧社区、智慧乡村、智慧驾…

Oracle SQL Developer 连接第三方数据库

首先Oracle SQL Developer除了支持连接Oracle数据库外,还支持连接第三方数据库,包括: Amazon RedshiftHiveIBM DB2MySQLMicrosoft SQL ServerSybase Adaptive ServerPostgreSQLTeradataTimesTen 首先,你需要在菜单Tools > Pr…

C++笔试练习笔记【5】:最小花费爬楼梯(有题目链接) 初识动态规划

文章目录 题目思路代码 动态规划简介**一、什么是动态规划****二、动态规划的应用场景****三、动态规划的基本步骤****四、动态规划的优缺点** 题目 题目链接:https://www.nowcoder.com/practice/9b969a3ec20149e3b870b256ad40844e?tpld230&tpld39751&ru/…

IT课程学习搭子

各种IT课程齐全可学,价格你绝对想不到,相比于培训班有以下优势: 1、避免被割韭菜,避免踩坑,避免交智商税,最低的成本学最有价值的课,同时又能达到比培训班更好的效果 2、收徒,带你学…

【Linux课程学习】:对于权限的理解(粘滞位)

🎁个人主页:我们的五年 🔍系列专栏:Linux课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 这篇文章主要理解权限的概念,以及如何更改…

KubeVirt虚拟机存储及网络卸载加速解决方案

1. 方案背景 1.1. KubeVirt介绍 随着云计算和容器技术的飞速发展,Kubernetes已成为业界公认的容器编排标准,为用户提供了强大、灵活且可扩展的平台来部署和管理各类应用。然而,在企业的实际应用中,仍有许多传统应用或遗留系统难…

AOP学习

AOP概述 AOP(Aspect Oriented Programming):⾯向切⾯编程,它是⼀种思想,它是对某⼀类事情的集中处理。 什么是SpringAOP? ⽽ AOP 是⼀种思想,⽽ Spring AOP 是⼀个框架,提供了⼀种对 AOP 思…

【Vue3】element-plus中el-tree的递归处理赋值回显问题

由于项目是从0-1开始构建的rbac都需要重新构建对接 所以涉及到了权限管理和菜单管理 整体思路很简单:初始化树 -> 处理 el-tree 回显 -> 递归处理所有层级菜单选中的id 不处理情况下: 只要勾选一个子节点,回来接收到的父节点数据 会…

Java面试题——第三篇(JVM)

1. 什么情况下会发生栈内存溢出 栈是线程私有的,他的生命周期和线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧…

剪映怎么剪辑视频?2024年视频剪辑新手必读指南!

在快节奏的工作里,掌握快速剪辑视频的技巧真的很有用。不管是要做个产品展示、录制培训材料,还是制作社交媒体上的内容,有一款好用的视频剪辑软件,工作效率立马提升好几个档次。咱们今天就先来聊聊剪映怎么剪辑视频?如…

如果忘了Linux密码如何重置?

忘记密码是我们常会遇到的情况之一,无论是在操作系统、网站账户、手机、电子邮件还是其他渠道上。 忘记密码是我们常会遇到的情况之一,无论是在操作系统、网站账户、手机、电子邮件还是其他渠道上。有时候如果密码需要符合特定的复杂性要求,…

哈佛大学单细胞课程|笔记汇总 (三)

哈佛大学单细胞课程|笔记汇总 (一) 哈佛大学单细胞课程|笔记汇总 (二) 听哈佛大神讲怎么做单细胞转录组GSEA分析 (三)Single-cell RNA-seq: Quality control set-up 在生成count矩阵后,我们需…

基于大数据的混合音乐推荐系统的设计与设计(论文+源码)_kaic

摘 要 随着数据的不断增长和用户对随听随播的收听方式的习惯,开发一款音乐推荐系统变得越来越必要。为了满足这一需求,本论文采用Java语言、Vue以及数据库MySQL进行开发。系统的主要功能包括登录注册、音乐分类管理、音乐推荐管理、音乐资讯管理、音乐库…

PCIe学习笔记(16)

层次结构(Hierarchy)ID Message (PCIe I/O 互连的树形拓扑结构称为 PCIe 的 Hierarchy,或称层级、层次(不是事务层、数据链路层的“层”)。层次区域是指与 RC 某一 RP 相关联的所有设备和链路组成的线路结…

微服务之SpringAMQP详解

目录 前言 1. 概述 2. Basic Queue简单队列模型 2.1 消息发送 2.2 消息接收 2.3 总结 3. WorkQueue模型 3.1 消息发送 3.2 消息接收 3.3 测试 3.4 消费预取限制 3.5 总结 4. 发布、订阅 5. Fanout 5.1 声明队列和交换机 5.2 消息发送 5.3 消息接收 5.4 测试 5…

Linux常用命令学习

常用apt命令. apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。 apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。 apt 命令执行需要超级管理员权限(ro…

【Java】Java泛型、集合、UML统一建模语言、final关键字

昨天在昆仑巢,下午练习Spring Boot的过滤器Filter。 昨天傍晚开始阅读《疯狂Java讲义(第2版)》,熟悉了UML建模语言、Final修饰符、List集合和泛型。 1.UML建模语言: 13种图,常用的包括用例图、类图、组件图、部署图、顺序图、活动图和状态机…

JVM结构、架构与生命周期总结

【1】JVM结构 不同厂商的JVM产品 : 厂商JVMOracle-SUNHotspotOracleJRocketIBMJ9 JVM阿里Taobao JVM HotSpot VM是目前市面上高性能虚拟机的代表作之一。它采用解释器与即时编译器并存的架构。 在今天,Java程序的运行性能早已脱胎换骨,已…