windows系统vtk-v9.1.0使用Qt5.15.2自带mingw810_64进行编译

,

在windows中使用mingw编译vtk存在不少问题, 测试了几个高于vtk-v9.1.0的版本都存在一些问题导致无法正常编译, 本文记录下编译过程

相关资源下载地址

cmake-3.31.4-windows-x86_64.msi

vtk-v9.1.0

VTK编译 & 安装

  • 前置操作: 将Qt5.15.2中的mingw810_64的bin目录添加到系统环境变量中,并重启操作系统, 如: C:\Qt\Tools\mingw810_64\bin

  • 打开C:\Qt\Tools\mingw810_64\x86_64-w64-mingw32\include\winerror.h文件搜索ERROR_INCORRECT_SIZE __MSABI_LONG, 查看该定义下面是否有以下定义, 没有的话加上:

    #define ERROR_SYMLINK_CLASS_DISABLED                       1463
    #define ERROR_SYMLINK_NOT_SUPPORTED                        1464
    #define ERROR_XML_PARSE_ERROR                              1465
    #define ERROR_XMLDSIG_ERROR                                1466
    #define ERROR_RESTART_APPLICATION                          1467
    #define ERROR_WRONG_COMPARTMENT                            1468
    #define ERROR_AUTHIP_FAILURE                               1469
    #define ERROR_NO_NVRAM_RESOURCES                           1470
    
  • 下载并安装cmake

  • 下载并解压vtk-v9.1.0

  • 进入vtk-v9.1.0目录下创建build文件夹

  • 打开cmake-gui对vtk-v9.1.0进行配置

设置源码和编译路径

点击Configure按钮, 选择MinGW Makefiles, 然后点击Finish

需要等待CMake进行一些配置, 然后会出现一些新的选项, 下面是一些我们要配置的选项, 先选中界面上的Advanced复选框:

Name Value 描述
CMAKE_CXX_FLAGS -fcommon -
CMAKE_C_FLAGS -fcommon -
CMAKE_BUILD_TYPE Release 以Release的模式进行编译
CMAKE_INSTALL_PREFIX C:\Library\VTK 执行make install时的安装路径
VTK_GROUP_ENABLE_Qt YES 使能Qt选项

然后再次点击Configure按钮, 现在把Advanced复选框取消选中, 可以看到最上面有以下三个配置项, 请根据我的进行修改:

Name Value 描述
Qt5_DIR C:\Qt\5.15.2\mingw81_64\lib\cmake\Qt5 Qt5路径
Qt6_DIR Qt6_DIR-NOTFOUND Qt6路径(这里不需要配置)
VTK_QT_VERSION 5 使用Qt5

然后再次点击Configure按钮, 这时候会发现多出来很多Qt相关的配置项, 直接再次点击Configure按钮, 配置项的红色区域全部消失, 然后点击Generate按钮生成

  • 打开CMD, 进入vtk-v9.1.0\build目录, 然后执行以下命令开始编译:

    mingw32-make.exe -j 16
    

  • 最后执行安装指令, 将动态库发布到CMAKE_INSTALL_PREFIX参数指定的目录下

    mingw32-make.exe install