VTK学习笔记之一、VTK源码编译安装

一、VTK源码编译

准备工作 Visual Studio 2019 (本地是2019), CMake,当然最重要的VTK源码。当然最好也一并下载VTK的文档,以及示例,有助于学习嘛。
vtk官网下载 这里我下载的是VTK-7.1.1.zip
CMake下载 我的版本是3.19.2

CMake配置

分别解压VTK-7.1.1.zip,VTKLargeData-7.1.1.zip到一个空白的文件夹,以防万一路径最好不要包含中文以免产生一些奇奇怪怪的问题。
在这里插入图片描述

  1. 配置好源码路径,及生成路径后点击 Configure, 根据自己的需要选择配置。

  2. CMake的一些关键字
    BUILD_DOCUMENTATIONN 默认是关闭的,这里文档下载了所以就不勾选
    BUILD_EXAMPLES VTK官方例子 对我这个菜鸟来说当然要勾选了
    BUILD_SHARED_LIBS 默认关闭的是静态编译,这个根据自己需要来。
    **BUILD_TESTING ** 是否编译VTK测试程序
    CMAKE_AR 静态库的归档工具名字,不知道什么东东
    CMAKE_CONFIGURATION_TYPES 编译类型 debug /release
    CMAKE_INSTALL_PREFIX VTK 的安装路径
    VTK_WRAP_JAVAVTK_WRAP_PYTHONVTK_WRAP_TCL这三个是为Java,Tcl或者Python 准备的,如果勾选的话,会编译这些解释器的工具
    剩下的根据自己需要选择,然后再次点击configure
    在这里插入图片描述

  3. 期间Configure时候遇到几个问题,警告就忽略不计了,其他阻塞问题记录一下 :
    a. 是CMake 版本问题,解决办法是修改CMakeLists.txt 中cmake_minimum_required(VERSION 3.19.2 FATAL_ERROR) 其中version 改为自己的CMake版本
    b. “Documentation.cmake is VTK-specific code and should not be used in non-VTK projects. This logic in this module is best shipped with the project using it rather than with CMake. This is now an error according to policy CMP0106.” 找不到解决办法(所以找到对应的Documentation.cmake文件,修改代码,过滤这个错误,反正不要生成帮助文档,如果有正统的解决方法请不吝赐教啊)

  4. 点击Generate 生成Project文件

  5. 点击Open Project ,生成ALL_BUILD

编译问题

  1. 问题:error C3848: 具有类型“const vtkLabelHierarchy::Implementation::PriorityComparator”的表达式会丢失一些 const-volatile 限定符以调用“bool vtkLabelHierarchy::Implementation::PriorityComparator::operator ()(const vtkIdType &,const vtkIdType &)”vtkLabelHierarchyPrivate.h 文件 69行 bool operator () ( const vtkIdType& a, const vtkIdType& b ) const 后面加上const 即可
  2. VTKData 编译不过,将VTKData-7.1.1.zip / VTKlargeData-7.1.1.zip 解压到ExternalData/Objects/MD5/文件夹下
  3. VtkGUISupportQtOpenglCxxTests 编译不过 将Qt5OpenGLd.lib 添加到依赖项即可

大功告成

在这里插入图片描述


版权声明:本文为qq_37791201原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。