编译 VTK
可视化工具包 (VTK) 是一种用于操作和显示科学数据的开源软件。它配备了最先进的 3D 渲染工具,一套用于 3D 交互的小部件,以及广泛的 2D 绘图功能。VTK 是 Kitware 软件开发 支持 平台集合的一部分。该平台在全球范围内用于商业应用和研发。例如,请参阅 VTK in Action。
– https://www.vtk.org/about
这里以 VTK 9.1.0 为例
Prerequisites
参考 VTK Documentation >> build.md#prerequisites
- CMake >= 3.12 (越新越好)
- Qt >= 5.9
下载
1 | > git clone --recursive https://gitlab.kitware.com/vtk/vtk.git |
1 | > git clone --recursive --branch v9.1.0 --depth=1 https://gitlab.kitware.com/vtk/vtk.git |
配置与编译
运行 CMake-GUI 并将源码目录设置为 clone 下来的 vtk 仓库目录, 并自行指定 build 目录.
使用 Add Entry 按钮添加缓存变量 CMAKE_DEBUG_POSTFIX,类型为 STRING,值设置为 -gd。这是为了将最后编译的 debug 文件与 release 文件区分开来。
点击 Configure, 选择安装的 Visual Studio 的版本,选择 x64 平台,选择平台工具集 v141(对应 VS2017 默认的平台工具集),点击 Finish 开始配置。
修改 CMAKE_INSTALL_PREFIX 变量,指定安装目录。
可以选择需要构建的内容,这里 只勾选 BUILD_SHARED_LIBS,不对文档、示例和测试进行生成,这样可以节省生成和构建的时间。
- BUILD_DOCUMENTATION,
- BUILD_EXAMPLES,
- BUILD_SHARED_LIBS,
- BUILD_TESTING。
使用 CMake-GUI 中的搜索框,输入 Qt,将自动过滤出与 Qt 相关的配置项:将
- VTK_GROUP_ENABLE_Qt,
- VTK_MODULE_ENABLE_VTK_GUISupportQtSQL
- VTK_MODULE_ENABLE_VTK_GUISupportQt
- VTK_MODULE_ENABLE_VTK_GUISupportQtQuick
- VTK_MODULE_ENABLE_VTK_RenderingQt
- VTK_MODULE_ENABLE_VTK_ViewsQt
设置为 WANT; - VTK_QT_VERSION 设置为 5。
注意,不同版本 VTK 在这里显示出来的选项可能不同,如果看到了 VTK_Group_Qt, 将其勾选即可。
再次点击 Configure, 然后通过搜索框过滤 Qt, 检查相关项的 _DIR 是否检测成功, 否则需手动指定。完成后点击 Configure, 然后点击 Generate 生成 VS 解决方案。点击 Open Project, 将自动通过 VS 打开。
点击 CMake-GUI >> Tools >> Show My Changes 可以看到自己所做的修改如下
My Changes 1
2
3
4
5
6
7
8
9
10
11
12
13Commandline options:
-DVTK_GROUP_ENABLE_Qt:STRING="WANT" -DVTK_MODULE_ENABLE_VTK_GUISupportQtSQL:STRING="WANT" -DVTK_MODULE_ENABLE_VTK_GUISupportQt:STRING="WANT" -DVTK_MODULE_ENABLE_VTK_GUISupportQtQuick:STRING="WANT" -DVTK_MODULE_ENABLE_VTK_RenderingQt:STRING="WANT" -DVTK_MODULE_ENABLE_VTK_ViewsQt:STRING="WANT" -DVTK_QT_VERSION:STRING="5"
Cache file:
VTK_GROUP_ENABLE_Qt:STRING=WANT
VTK_MODULE_ENABLE_VTK_GUISupportQtSQL:STRING=WANT
VTK_MODULE_ENABLE_VTK_GUISupportQt:STRING=WANT
VTK_MODULE_ENABLE_VTK_GUISupportQtQuick:STRING=WANT
VTK_MODULE_ENABLE_VTK_RenderingQt:STRING=WANT
VTK_MODULE_ENABLE_VTK_ViewsQt:STRING=WANT
VTK_QT_VERSION:STRING=5在 VS 中点击 生成 >> 批生成: 勾选如下选项后点击 生成 , 等待 VS 自动完成生成与安装。
- ALL_BUILD,Debug,x64
- ALL_BUILD,Release,x64
- INSTALL,Debug,x64
- INSTALL,Release,x64
在安装目录可以看到如下库文件结构
show-tree -depth 2 1
2
3
4
5
6
7
8
9
10D:\ProgramFiles\VTK\VTK9.1.0
├──bin
├──include
│ └──vtk-9.1
├──lib
│ ├──cmake
│ ├──qml
│ └──vtk
└──share
└──licenses
作为第三方库使用
在 CMakeLists.txt 中加入如下内容, 并且在 Configure 时可能需要指定安装目录-DVTK_DIR:PATH="D:/ProgramFiles/VTK/VTK9.1.0/lib/cmake/vtk-9.1"
1 |
|
程序运行时需确保 vtk 相关 dll 能够被找到。