当前位置: 首页 > news >正文

VTK-8.2.0源码编译(Cmake+VS2022+Qt5.12.12)

参考:
安装VTK
详细图文讲解CMake编译VTK,包含详细的编译环境版本
Visual Studio 2022 配置VTK9.3.0
VTK-8.2.0源码编译和初步使用(Cmake+VS2015+Qt5.14.2)

文章目录

  • 下载
  • 编译
    • 编译环境介绍
    • 配置CMake信息
      • BUILD_SHARED_LIBS控制生成的库是动态链接库(共享库)还是静态库
      • VTK_GROUP_ENABLE_QT or VTK_Group_Qt 是否启用对 Qt 的支持
      • BUILD_EXAMPLES否编译 VTK 自带的示例代码
    • VStudio编译
    • CMakeList.txt解压编译

下载

VTK下载链接:https://vtk.org/download/
感觉windows下zip更方便通用一些,新版本没有zip压缩包,所以下的如图所示版本VTK-8.2.0.zip在这里插入图片描述

编译

编译环境介绍

工具名称版本下载地址
系统环境win 10-
CMakecmake-3.23.0-rc5-windows-x86_64.msihttps://github.com/Kitware/CMake/releases/tag/v3.23.0-rc5
VTKVTK-8.2.0.ziphttps://vtk.org/download/
VIsual Studio2022https://visualstudio.microsoft.com/downloads/

配置CMake信息

创建文件夹
在这里插入图片描述

文件夹存放文件
sourceVTK 源码的解压后的文件
buildVS 生成的 VTK 库,如:include、lib、dll
vtk_slnVTK 源码的工程目录

选择vtk源码和生成vtk工程文件的目录。
在这里插入图片描述
我把下载之后解压的源码拷贝到上图那个路径下了
在这里插入图片描述
选择自己vs编译平台的版本信息后,点击左下方的Configure。
在这里插入图片描述
Configure等待中。
在这里插入图片描述

BUILD_SHARED_LIBS控制生成的库是动态链接库(共享库)还是静态库

设置为ON:当BUILD_SHARED_LIBS 设置为ON时,VTK会编译成动态链接库(DLL,动态共享库)。这种情况下,生成的库文件在运行时需要被加载到程序中,程序本身不包含库的代码。

设置为OFF:当BUILD_SHARED_LIBS 设置为OFF时,VTK会编译成静态库(.lib)。静态库会直接嵌入到最终的可执行文件中,因此在运行时不需要额外的库文件。

默认情况下,BUILD_SHARED_LIBS 通常是开启的。

在search中搜索BUILD_SHARED_LIBS,把搜索结果的Value勾选上。
在这里插入图片描述

VTK_GROUP_ENABLE_QT or VTK_Group_Qt 是否启用对 Qt 的支持

作用

  • 当设置为 YES 时,VTK 会编译与 Qt 相关的模块,例如 vtkGUISupportQt、vtkViewsQt 等。这些模块允许在 Qt 应用程序中使用 VTK 的可视化功能,例如将 VTK 的渲染窗口嵌入到 Qt 界面中。
  • 如果设置为 NO,则不会编译这些与 Qt 相关的模块。

配置方法

  • 在使用 CMake 配置 VTK 项目时,找到 VTK_GROUP_ENABLE_QT 选项,并将其值设置为 YES。
  • 如果系统中安装了多个版本的 Qt,还需要正确设置 Qt5_DIR 或 Qt6_DIR,以指定要使用的 Qt 版本的路径。
  • 在某些情况下,还需要确保系统环境变量中包含 Qt 的安装路径。

注意事项

  • 启用 VTK_GROUP_ENABLE_QT 后,可能会出现与 Qt 版本不兼容的问题,因此需要确保安装的 Qt 版本与 VTK 兼容。
  • 如果在配置过程中出现错误,可以检查 Qt 的路径是否正确设置,以及是否有其他与 Qt 相关的配置项需要调整。

继续在search中搜索VTK_GROUP_ENABLE_QT,把Value值设置为 “YES”。
我这个版本木有啊
在这里插入图片描述
有的有的,需要搜索VTK_Group_Qt,可能我环境变量或者cmake配置里已经包含了qt路径,再次configure+generate直接成功
在这里插入图片描述

BUILD_EXAMPLES否编译 VTK 自带的示例代码

作用

  • 默认值OFF
  • 开启时:如果设置为 ON,VTK 的示例代码将被编译,并作为测试添加到 VTK 的测试套件中。这可以帮助开发者快速了解 VTK 的使用方法,但也可能会增加额外的编译时间。
  • 关闭时:不编译示例代码,可以缩短编译时间。

配置方法
在使用 CMake 配置 VTK 项目时,找到 BUILD_EXAMPLES 选项,并将其值设置为 ONOFF。例如:

  • 如果需要编译示例代码,勾选该选项。
  • 如果不需要编译示例代码,保持默认值即可。

注意事项

  • 如果选择编译示例代码,建议在编译前确保系统中已安装必要的依赖项,以避免编译过程中出现错误。
  • 编译示例代码可能会增加编译时间,因此可以根据实际需求选择是否启用。

在这里插入图片描述

在search中搜索CMAKE_INSTALL_PREFIX,把Value值设置为最后在vtk_sln中生成include、dll、lib的位置。这里以上述位置为例是 “…\vtk\build”
在这里插入图片描述
设置完后,点击左下角"Configure"一下。 等待Configure中。
在这里插入图片描述
现在第二次Configure之后没有红色了。那直接点Generate。
在这里插入图片描述
完成
在这里插入图片描述

VStudio编译

只编译release试试
在这里插入图片描述
加了qt之后再次生成了一次,全部成功
在这里插入图片描述
选择项目INSTALL,生成该项目,得到vtk在Release模式下的lib和dll文件。
在这里插入图片描述
非常快就编译成功
在这里插入图片描述

CMakeList.txt解压编译

# https://vtk.org/download/
include(ExternalProject)set(VTK_NAME vtk-8.2.0)set(VTK_ROOT          ${CMAKE_BINARY_DIR}/thirdparty/${VTK_NAME})
set(VTK_LIB_DIR       ${VTK_ROOT}/lib)
set(VTK_INCLUDE_DIR   ${VTK_ROOT}/include)set(VTK_CONFIGURE     cmake -B ${VTK_ROOT}/src/${VTK_NAME}-build -G "${CMAKE_GENERATOR}" -A x64 -S ${VTK_ROOT}/src/${VTK_NAME} -DCMAKE_INSTALL_PREFIX=${VTK_ROOT} -DVTK_Group_Qt=ON)
set(VTK_MAKE          cmake --build ${VTK_ROOT}/src/${VTK_NAME}-build -j --config ${CMAKE_BUILD_TYPE})
set(VTK_INSTALL       cmake --build ${VTK_ROOT}/src/${VTK_NAME}-build --target install --config ${CMAKE_BUILD_TYPE})# 查找7z解压工具
find_program(7Z_EXECUTABLE NAMES 7z REQUIRED)
ExternalProject_Add(${VTK_NAME}DOWNLOAD_NAME VTK-8.2.0.zipDOWNLOAD_COMMAND ${7Z_EXECUTABLE} x ${CMAKE_CURRENT_LIST_DIR}/VTK-8.2.0.zip -aoa -o${VTK_ROOT}/srcPREFIX ${VTK_ROOT}CONFIGURE_COMMAND ${VTK_CONFIGURE}BUILD_COMMAND ${VTK_MAKE}INSTALL_COMMAND ${VTK_INSTALL}
)

相关文章:

  • 零跑B01上海车展全球首秀,定义纯电轿车新基准
  • 3D模型格式转换工具HOOPS Exchange 2025.3.0更新:iOS实现Rhino格式支持!
  • CS144 Lab3 实战记录:TCP 发送器实现
  • 奶茶店里面的数据结构
  • ProxySQL实现mysql8主从同步读写分离
  • Vue3祖先后代组件数据双向同步实现方法
  • TypeScript-知识点梳理
  • 阿里云 AI 搜索开放平台:RAG智能化工作流助力 AI 搜索
  • 【数据结构和算法】6. 哈希表
  • Hive中Map和Reduce阶段的分工
  • C++笔记-stack_queue(含deque,priority_queue,仿函数的讲解)
  • NHANES指标推荐:CTI
  • NOIP2012提高组.同余方程
  • Java基础复习(JavaSE进阶)第九章 网络编程
  • 考研单词笔记 2025.04.23
  • 脂质体挤出器有哪些知名品牌?
  • 2025深圳中兴通讯安卓开发社招面经
  • 【金仓数据库征文】从Oracle到KingbaseES的语法兼容与迁移
  • Spring Boot 项目:如何在 JAR 运行时读取外部配置文件
  • 【每日八股】复习计算机网络 Day4:TCP 协议的其他相关问题
  • 净海护渔,中国海警局直属第一局开展伏季休渔普法宣传活动
  • 李乐成任工业和信息化部部长
  • 普京与卢卡申科举行会晤,将扩大在飞机制造等领域合作
  • 上海市十六届人大常委会第二十一次会议表决通过有关人事任免事项
  • 中使馆:奉劝菲方有关人士不要在台湾问题上挑衅,玩火者必自焚
  • 金科股份:去年营收约275亿元,今年确保所有项目“零烂尾”