Ubuntu20.04下QT5.12.12 + VTK8.2.0环境配置、代码测试及问题分析

文章目录

    • 0.系统环境+库环境
    • 1.安装依赖环境
    • 2.QT安装
    • 3.VTK编译和安装
    • 4.VTK资源导入QT Designer
    • 5.代码测试
    • 6.问题汇总

0.系统环境+库环境

  • ubuntu20.04(如果你想使用Ubuntu22.04或22.10安装VTK8.2,则需降低CMake版本,如cmake3.16.3,或更改cmake文件)
  • qt5.12.12(需要声明的是,如果你想使用QT6,则建议安装VTK9以上版本,VTK8对QT6的支持并不好,对于初学者VTK9删去了QVTKWidget,其相关资料较少,学习难度较大,而VTK8不仅继续含有QVTKWidget,也有最新的支持方式,详细可参考这篇文章)
  • vtk8.2.0(或从官网下载最新版本)

qt+vtk网上教程一大堆,然而,具体实现过程中我却遇到了诸多问题,我曾尝试在ubuntu22.04下编译qt6+vtk9.2,虽然能够正常编译和安装,但安装后发现QVTK库根本没有编译出来,ubuntu22.04对vtk8.2支持也并不友好,不仅在cmake版本上有所限制,更是对系统中一些库的依赖解决并不充分,因此,迫不得以,最终选择了Ubuntu20.04,但通过一些教程虽安装成功,不知是否是个例,因改动了libusb库导致系统无法正常开机进入桌面。经过多天尝试,终于有了一次成功经历,并在重装ubuntu下得到了验证,在此分享。

1.安装依赖环境

首先还是建议将系统各库进行更新

sudo apt update
sudo apt upgrade

安装依赖

sudo apt install -y build-essential cmake
sudo apt install -y qt5-default
sudo apt install -y cmake-qt-gui

这里,在ubuntu20.04下,系统自动选择的Cmake版本是3.16.3,可以正常使用。

2.QT安装

QT安装此处略过,网上教程较多,只说一下重点:
我的安装目录是/home/user/Software/QT5.12.12
安装组件选择了除Android以外的全部。
Ubuntu20.04下QT5.12.12 + VTK8.2.0环境配置、代码测试及问题分析_第1张图片
在安装结束后,可选择性地对系统QT环境进行配置,不配置也可以
具体配置方法:

sudo gedit ~/.bashrc

打开后在文件末尾添加下列内容:

export QTDIR=/home/zyr/Software/Qt5.12.12/5.12.12/gcc_64
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

最后,更新

source ~/.bashrc

3.VTK编译和安装

在安装vtk之前,要确保xt库的正常,可以输入以下代码

sudo apt install -y libxt-dev

将下载的vtk-8.2.0.tar.gz包提取,进入vtk-8.2.0文件夹,并在里面新建文件夹,命名build
使用cmake-gui,设置源码目录和输出目录,勾选Group和Adavanced,点击config,按下图设置
Ubuntu20.04下QT5.12.12 + VTK8.2.0环境配置、代码测试及问题分析_第2张图片在第一次configure后,设置CMAKE中,CMAKE_BUILD_TYPEReleaseBUILD里,确保BUILD_SHARED_LIBS被勾选,然后搜索QT,设置如下
Ubuntu20.04下QT5.12.12 + VTK8.2.0环境配置、代码测试及问题分析_第3张图片切忌不要勾选Module_vtkGUISupportQTWebkit,因为QTWebkit在QT5.5版本以后被QTWebEngine替代,QTWebkit被删除。
继续Configure。可能输出会继续出现红色,一定要将QT目录替换为自己安装的QT目录,一路Configure,直至红色消失,最终的设置如下图:
Ubuntu20.04下QT5.12.12 + VTK8.2.0环境配置、代码测试及问题分析_第4张图片最后点击Generate,生成文件。
关闭Cmake-gui界面,进入build文件夹,打开terminal,依次输入

make -j$(nproc)

等待编译成功

sudo make install

4.VTK资源导入QT Designer

在install后,系统不会自动将QVTK相关组建导入QT Creator,需要自行查找libQVTKWidgetPlugin.so文件,并将其复制入QT Designer的目录。在此,我的文件生成地址在/usr/local/plugins/designer,将其复制进QT目录。
Ubuntu20.04下QT5.12.12 + VTK8.2.0环境配置、代码测试及问题分析_第5张图片
Ubuntu20.04下QT5.12.12 + VTK8.2.0环境配置、代码测试及问题分析_第6张图片

5.代码测试

打开qt creator,在Projects页面打开现有工程
Ubuntu20.04下QT5.12.12 + VTK8.2.0环境配置、代码测试及问题分析_第7张图片选择vtk源码目录下的Examples文件,随机找一个QT例子进行演示
Ubuntu20.04下QT5.12.12 + VTK8.2.0环境配置、代码测试及问题分析_第8张图片

6.问题汇总

(1)Cmake错误
Cmake版本过高,可降低Cmake版本,或修改CMakeLists.txt 中cmake_minimum_required(VERSION 3.19.2 FATAL_ERROR),将其中version 改为自己的CMake版本

(2)VTKData 编译不过
将VTKData-7.1.1.zip / VTKlargeData-7.1.1.zip 解压到ExternalData/Objects/MD5/文件夹下

(3)VtkGUISupportQtOpenglCxxTests编译不过
将Qt5OpenGLd.lib 添加到依赖项即可。

(4)安装了支持库,cmake也没出错,但编译失败
可能系统安装的其他环境,如ros等更改了库的版本或导致出现多个同样的库,从而系统找不到对应的版本

持续更新中…

你可能感兴趣的:(vtk,qt,开发语言,ubuntu)