linux环境下打包c++的Qt应用程序装载vtk和itk(qmake方式)

推荐方式:

linux环境下打包c++的Qt应用程序装载vtk和itk(cmake方式)

一、QT安装

安装前准备

sudo apt-get update
sudo apt install cmake
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install libx11-dev libxext-dev libxtst-dev

1.1 方法一 源码编译安装(实践缺少xcb依赖):

qt下载路径
在这里插入图片描述

`1、解压安装`
解压 tar -xvf xxx.tar.xz
到当前解压的目录cd qt-everywhere-opensource-src-%VERSION%/qtbase
sudo ./configure
sudo cmake --build . --parallel
sudo cmake --install .

参考

1.2 方法二 run文件安装:

5.12.4.run版本下载
下载完成上传置linux环境直接sudo ./xxx.run进行安装

二、迁移windows下qt应用到linux

1、源码调整

  工程里面的目录Debug、GeneratedFiles、Release、Win32、x64和
  文件...user、...sln、...vcxproj、......filters删掉,
  只要保留.h、.cpp、.qrc(没有这个文件编译出来的Qt项目会显示不了图片)、.ui文件
  和Resources目录就可以了

2、生成.pro文件(qmake路径跟俊自己安装的qt路径)

sudo /opt/Qt5.14.1/5.14.1/gcc_64/bin/qmake -project QT+=widgets

项目中如果用到qml或websocket可以根据情况添加依赖如下:
在这里插入图片描述
3、生成Makefile文件

sudo /opt/Qt5.14.1/5.14.1/gcc_64/bin/qmake

4、生成shell文件

sudo make

4、执行shell文件
sudo ./xxx.sh

补充重新编译:
make clean

参考文章

三、VTK安装

3.1 安装ccmake 和 VTK 的依赖项

sudo apt-get install cmake-curses-gui
sudo apt-get install freeglut3-dev

3.2 linux下VTK库下载安装

vtk下载地址

选择合适的版本进行下载,解压到VTK文件夹下,在与下载的vtk版本目录同一级下新建文件下名为build。
在build目录下执行命令:
sudo cmake-gui
弹出图形化界面进行安装。
`步骤:选择vtk原路径->选择build安装路径->点击Advanced->点击Configure。`
`编辑修改选项:`
1、BUILD_SHARED_LIBS = ON  # 动态库编译,建议打开
2、BUILD_TESTING = OFF     # 默认OFF,如果打开的话,编译时会由于下载测试数据所用url过旧而报错,建议OFF
3、CMAKE_BUILD_TYPE = Release           # 默认Debug运行会较慢
4、CMAKE_INSTALL_PREFIX = /usr/local    # 这里用默认就行,或者改到想要安装的位置
5、VTK_FORBID_DOWNLOADS = ON    # 默认OFF,建议打开,否则编译会报错,理由同BUILD_TESTING
注意:BUILD_TESTING的报错问题。build_example这里要是进行vtk学习的话最好勾选上,会有自带的例子可供学习。

完成后再点击Generate。完成后退出图形化界面。
在终端build路径下输入:sudo make -j8
执行完成后输入:sudo make install

配置vtkRendering环境变量参考错误

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

至次VTK安装完成

参考安装

四、QT应用基础上引入VTK依赖

编辑迁移目录下的.pro文件末尾添加如下

INCLUDEPATH += $$PWD/../../include/vtk-8.2
DEPENDPATH += $$PWD/../../include/vtk-8.2

LIBS += -L$$PWD/../../lib/ \
-lvtkChartsCore-8.2 \
-lvtkCommonColor-8.2 \
-lvtkCommonComputationalGeometry-8.2 \
-lvtkCommonCore-8.2 \
-lvtkCommonDataModel-8.2 \
-lvtkCommonExecutionModel-8.2 \
-lvtkCommonMath-8.2 \
-lvtkCommonMisc-8.2 \
-lvtkCommonSystem-8.2 \
-lvtkCommonTransforms-8.2 \
-lvtkDICOM-8.2 \
-lvtkDICOMParser-8.2 \
-lvtkDomainsChemistry-8.2 \
-lvtkdoubleconversion-8.2 \
-lvtkexodusII-8.2 \
-lvtkexpat-8.2 \
-lvtkFiltersAMR-8.2 \
-lvtkFiltersCore-8.2 \
-lvtkFiltersExtraction-8.2 \
-lvtkFiltersFlowPaths-8.2 \
-lvtkFiltersGeneral-8.2 \
-lvtkFiltersGeneric-8.2 \
-lvtkFiltersGeometry-8.2 \
-lvtkFiltersHybrid-8.2 \
-lvtkFiltersHyperTree-8.2 \
-lvtkFiltersImaging-8.2 \
-lvtkFiltersModeling-8.2 \
-lvtkFiltersParallel-8.2 \
-lvtkFiltersParallelImaging-8.2 \
-lvtkFiltersPoints-8.2 \
-lvtkFiltersProgrammable-8.2 \
-lvtkFiltersSelection-8.2 \
-lvtkFiltersSMP-8.2 \
-lvtkFiltersSources-8.2 \
-lvtkFiltersStatistics-8.2 \
-lvtkFiltersTexture-8.2 \
-lvtkFiltersTopology-8.2 \
-lvtkFiltersVerdict-8.2 \
-lvtkfreetype-8.2 \
-lvtkGeovisCore-8.2 \
-lvtkgl2ps-8.2 \
-lvtkglew-8.2 \
-lvtkGUISupportQt-8.2 \
-lvtkGUISupportQtSQL-8.2 \
-lvtkhdf5-8.2 \
-lvtkhdf5_hl-8.2 \
-lvtkImagingColor-8.2 \
-lvtkImagingCore-8.2 \
-lvtkImagingFourier-8.2 \
-lvtkImagingGeneral-8.2 \
-lvtkImagingHybrid-8.2 \
-lvtkImagingMath-8.2 \
-lvtkImagingMorphological-8.2 \
-lvtkImagingSources-8.2 \
-lvtkImagingStatistics-8.2 \
-lvtkImagingStencil-8.2 \
-lvtkInfovisCore-8.2 \
-lvtkInfovisLayout-8.2 \
-lvtkInteractionImage-8.2 \
-lvtkInteractionStyle-8.2 \
-lvtkInteractionWidgets-8.2 \
-lvtkIOAMR-8.2 \
-lvtkIOAsynchronous-8.2 \
-lvtkIOCityGML-8.2 \
-lvtkIOCore-8.2 \
-lvtkIOEnSight-8.2 \
-lvtkIOExodus-8.2 \
-lvtkIOExport-8.2 \
-lvtkIOExportGL2PS-8.2 \
-lvtkIOExportPDF-8.2 \
-lvtkIOGeometry-8.2 \
-lvtkIOImage-8.2 \
-lvtkIOImport-8.2 \
-lvtkIOInfovis-8.2 \
-lvtkIOLegacy-8.2 \
-lvtkIOLSDyna-8.2 \
-lvtkIOMINC-8.2 \
-lvtkIOMotionFX-8.2 \
-lvtkIOMovie-8.2 \
-lvtkIONetCDF-8.2 \
-lvtkIOOggTheora-8.2 \
-lvtkIOParallel-8.2 \
-lvtkIOParallelXML-8.2 \
-lvtkIOPLY-8.2 \
-lvtkIOSegY-8.2 \
-lvtkIOSQL-8.2 \
-lvtkIOTecplotTable-8.2 \
-lvtkIOVeraOut-8.2 \
-lvtkIOVideo-8.2 \
-lvtkIOXML-8.2 \
-lvtkIOXMLParser-8.2 \
-lvtkjpeg-8.2 \
-lvtkjsoncpp-8.2 \
-lvtklibharu-8.2 \
-lvtklibproj-8.2 \
-lvtklibxml2-8.2 \
-lvtkloguru-8.2 \
-lvtklz4-8.2 \
-lvtklzma-8.2 \
-lvtkmetaio-8.2 \
-lvtknetcdf-8.2 \
-lvtkogg-8.2 \
-lvtkParallelCore-8.2 \
-lvtkParallelDIY-8.2 \
-lvtkpng-8.2 \
-lvtkpugixml-8.2 \
-lvtkRenderingAnnotation-8.2 \
-lvtkRenderingContext2D-8.2 \
-lvtkRenderingCore-8.2 \
-lvtkRenderingFreeType-8.2 \
-lvtkRenderingGL2PSOpenGL2-8.2 \
-lvtkRenderingImage-8.2 \
-lvtkRenderingLabel-8.2 \
-lvtkRenderingLOD-8.2 \
-lvtkRenderingOpenGL2-8.2 \
-lvtkRenderingQt-8.2 \
-lvtkRenderingSceneGraph-8.2 \
-lvtkRenderingUI-8.2 \
-lvtkRenderingVolume-8.2 \
-lvtkRenderingVolumeOpenGL2-8.2 \
-lvtkRenderingVtkJS-8.2 \
-lvtksqlite-8.2 \
-lvtksys-8.2 \
-lvtkTestingRendering-8.2 \
-lvtktheora-8.2 \
-lvtktiff-8.2 \
-lvtkverdict-8.2 \
-lvtkViewsContext2D-8.2 \
-lvtkViewsCore-8.2 \
-lvtkViewsInfovis-8.2 \
-lvtkViewsQt-8.2 \
-lvtkWrappingTools-8.2 \
-lvtkzlib-8.2 \

参考文章

五、ITK安装

下载版本
下载太慢可搭载vpn提高下载速度
注意此处安装配置选择生成动态链接库的方式

'1、下载完成后在解压目录下:'
	cd /usr/local/itk/InsightToolkit-5.2.1
	sudo mkdir bin
	cd bin
'2、接下来进行编译:'
	ccmake ..
按c选择默认配置,配置完成后按g生成makelist。
'3、完成后运行make文件进行编译:'
	make -j4
'4、编译完成后进行安装:'
	sudo make install
 至此完成了ITK的编译安装工作

参考安装

六、QT应用基础上引入VTK依赖后继续引入ITK依赖

6.1 编辑.pro文件(二或四基础上)

'1、添加后保存退出'
	INCLUDEPATH += $$PWD/../../../include/ITK-5.2
	DEPENDPATH += $$PWD/../../../include/ITK-5.2
	INCLUDEPATH += $$PWD/../../../itk/InsightToolkit-5.2.1/Modules/Bridge/VtkGlue/include
	DEPENDPATH += $$PWD/../../../itk/InsightToolkit-5.2.1/Modules/Bridge/VtkGlue/include
  `补充:具体路径根据缺少的包决定。
   寻找包或头文件可以通过 sudo find / -name *xx* 去查找 后再引入`
   libs依赖引入如下:
   LIBS += -L$$PWD/../../../lib/ \
   -litksys-5.2 \

6.2 编译运行

1、生成Makefile文件
	sudo /opt/Qt5.14.1/5.14.1/gcc_64/bin/qmake
2、生成shell
	sudo make 
3、执行
	sudo ./xx.sh

七、MobaXterm连接显示Linux图形化界面(解决不支持图形化界面的问题)

window下MobaXterm下载
使用参考1
使用参考2

参考其它:

https://www.jianshu.com/p/acf2fabd94f7
https://blog.csdn.net/shitsnail/article/details/78841919

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值