Ubuntu + Qt5 + VTK9环境配置+测试
文章目录
浪费了一整天的时间,尝试使用 Visual Stdio 编译VTK9.0,然后结合MFC开发。官方的文档提供的方法,换了几个版本的Cmake,照着网上各路大神的方法各种改,然而就是出错。应该是我电脑里的VS与VTK八字不合吧。于是换了Ubuntu18.04,同样是官方的方法,一次成功。。。。。论安装软件的坑,是永远也论不完的,所以就不要论了
以下是配置时的几点需要注意的,要以官方的方法为准!!!我之前在Ubuntu中折腾过几次,所以有些依赖的库可能已经有了,缺少库就直接安装就好,如果出错有大牛指点最好,没有就只能上网搜了。god bless you!!!
官方方法的连接:
https://www.vtk.org/Wiki/VTK/Configure_and_Build
VTK
最好用git clone的方式,不需要科学上网也是可以的。指令见官方链接!
VTK是基于opengl开发的(书上是这么写的),所以要装opengl!!!
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install freeglut3-dev
我安装的时候,出现了文件大小不符,无法下载的情况,解决方法就是换源,换成主服务器的就好了,虽然速度慢了,装完可以再换回去。
安装Qt
下载相应的版本http://download.qt.io/archive/qt/
linux上有64位的,我就直接用了,昨天折腾一天,现在有现成的就直接用吧。图形安装,很友好。
装完之后需要在“工具”->“选项”->“构建和运行”进行设置,要指定GCC与G++的路径。(安装之前最好都把GCC装上)
cmake
官方的ccmake用起来不是很友好,也没必要花时间去搞,建议使用cmake-gui,图形的,和windows一样,使用如下命令安装
sudo apt install cmake-qt-gui
跳转到build的目录下,启动cmake-gui
sudo cmake-gui <VTK源码的绝对路径>
第一次configure之后需要(cmake上有个advance要打勾!)
将VTK_Group_Qt打钩
还有官方的方法里提到的几个选项也要注意
第二次configure之后
需要制定Qt相应模块的目录
点击configure发现没有红色的选项了
然后就可以点general
之后就是编译
sudo make
之后就是漫长的等待。。。。。。
结束后
sudo make install
至此VTK编译结束
测试例程
例程是官方的例子,直接copy。
1、新建Qt工程
目录结构如下
2、在pro文件中添加头文件和库路径
完整的pro如下,注意路径要改成自己的!!我这里的头文件放在/home/ieeeee/VTKInstall/vtk-9.0
动态库放在/home/ieeeee/VTKInstall/VTKso/
这里要强调添加动态库的时候的格式,比如添加libvtkChartsCore-9.0.so
要写成-lvtkChartsCore-9.0
,否则会报错collect2: error: ld returned 1 exit status
#-------------------------------------------------
#
# Project created by QtCreator 2018-07-01T19:32:43
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = hello
TEMPLATE = app
# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
FORMS += \
mainwindow.ui
INCLUDEPATH += /home/ieeeee/VTKInstall/vtk-9.0
#LIBS += -L/home/ieeeee/VTKInstall/VTKa/lib*
LIBS += -L/home/ieeeee