CMake编译VTK过程遇到的问题还挺多,找了很多博客记录才把问题慢慢解决掉。

CMake的问题应该是都处理掉了,编译生成的lib与dll文件有点小问题,在生成ib与dll项目时,
Debug生成失败了一个库,但Release没有缺少。找了很久也没找到原因,因为对个人使用暂时没
什么影响,我就没有再去寻找了,后续遇到再补充吧。

0、编译环境介绍:

工具名称版本下载地址
系统环境win 10-
CMakecmake-3.28.0-rc4-windows-x86_64.msihttps://github.com/Kitware/CMake/releases/tag/v3.28.0-rc4
VTK9.3.0 (VTK-9.3.0.tar.gz)https://vtk.org/download/
VIsual Studio2022 Professionalhttps://visualstudio.microsoft.com/downloads/

vs 2022 pro 激活码:TD244-P4NB7-YQ6XK-Y8MMM-YWV2J

如果github下载CMake访问不了,这里有百度网盘的包
链接:https://pan.baidu.com/s/1UiWdLhWUn7vTkmffF75dRA?pwd=u9mm
提取码:u9mm

1、CMake生成vs项目

1.1、创建文件夹

需先创建三个文件夹,source放置VTK源码、build放置VTK项目生成后的lib与dll文件、vtk_sln 放置VTK工程

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

以我的目录为例,路径如下:

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

1.2 配置CMake信息

对这一小节的作用,我的理解是用CMake把下载的VTK源码构建成vs的项工程目;设置vs项目生成后lib、dll、include和文件位置。

  • 1.2.1 选择vtk源码和生成vtk工程文件的目录

在这里插入图片描述

  • 1.2.2 选择自己vs编译平台的版本信息后,点击左下方的Configure。

在这里插入图片描述

  • 1.2.3 Configure等待中。

在这里插入图片描述

  • 1.2.4 生成之后会出现一片红色区域,不用着急,后面会多次设置,直到红色全部消失。

在这里插入图片描述

  • 1.2.5 在search中搜索BUILD_SHARED_LIBS,把搜索结果的Value勾选上。

在这里插入图片描述

  • 1.2.6 继续在search中搜索VTK_GROUP_ENABLE_QT,把Value值设置为 “YES”。

在这里插入图片描述

  • 1.2.7 在search中搜索CMAKE_INSTALL_PREFIX,把Value值设置为最后在vtk_sln中生成include、dll、lib的位置。这里以文章1.1中的位置为例是 “E:\blog\vtk\build”

在这里插入图片描述

  • 1.2.8 设置完后,点击左下角"Configure"一下。

在这里插入图片描述

  • 1.2.9 等待Configure中。

在这里插入图片描述

  • 1.2.10 现在第二次Configure之后只有二个是红色了。

在这里插入图片描述

  • 1.2.11 继续在search中搜索BUILD_EXAMPLES,把其Value值勾选上。再次点击左下角Configure编译。

在这里插入图片描述

  • 1.2.12 在上面点击Configure后,红色区域没有了。现在点击Generate生成vtk的sln项目。

在这里插入图片描述

  • 1.2.13 Generate中,时间稍稍有点长。
    在这里插入图片描述
  • 1.2.14 Generate完成后,点击Open Project。点击后因为我上之前配置的是vs2022,所以会在vs2022中打开。
    在这里插入图片描述

2、vs2022pro 生成vtk9.3.0

在上一小节 1.2.14 中,点击Open Project中会自动打开vs2022,因为工程比较大,打开可能会卡死,耐心等待加载完成即可。若卡死了,关闭一些软件释放内存再打开。

在这里插入图片描述

2.1、Debug生成

  • 2.1.1 项目加载完成后,确保当前是Debug模式,选择 " ALL_BUILD"工程,点击右键 - 生成。这个过程比较长,我用了大概30分钟才生成完。

在这里插入图片描述

  • 2.1.2 生成的输出信息。

在这里插入图片描述

  • 2.1.3 Debug生成结束,有284个成功,1失败。原因不知道,目前没有什么影响,暂时不去处理,但Release下是全部正常的。

在这里插入图片描述

  • 2.1.4 选择项目INSTALL,生成该项目,得到vtk在Debug模式下的lib和dll文件。
    在这里插入图片描述
  • 2.1.5 在文件夹中可看见,已得到debug模式下lib库与dll库。Debug模式下的文件自动在后面加了d。

在这里插入图片描述

2.2 、Release生成

Realease下的操作与Debug类似。

  • 2.2.1 先对ALL_BUILD生成。
    在这里插入图片描述
  • 2.2.2 Realse下的进度条信息。

在这里插入图片描述

  • 2.2.3 ALL_BUILD生成结束。285个成功,0失败。

在这里插入图片描述

  • 2.2.4 对INSTALL生成。
    在这里插入图片描述

  • 2.2.5 release下INSTALL的生成很快 。

在这里插入图片描述

  • 2.2.6 releas下vtk库的结果。Debug和Release的LIB文件都在一个文件夹中,Debug和Release的DLL设施也都在一个文件夹中,它们的区别就是看文件名后面有无加 “d”,加了就表示Debug模式的库,没有则为Release下的库。
    在这里插入图片描述

3、使用示例

在另一篇博客已有记录:vs2022 配置 VTK9.3.0

这里有示例生成的include、lib、dll库,需要自取:
链接:https://pan.baidu.com/s/1YBbzsd-MUItY8Pma-mLSxA?pwd=qh57
提取码:qh57

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐