文档章节

在Linux下使用linuxdeployqt发布Qt程序

shzwork
 shzwork
发布于 09/19 00:05
字数 1282
阅读 38
收藏 2

目录

 


回到顶部

一、简介

linuxdeployqt 是Linux下的qt打包工具,可以将应用程序使用的资源(如库,图形和插件)复制到二进制运行文件所在的文件夹中。

 

回到顶部

二、安装linuxdeployqt

github直接下载编译好的 linuxdeployqt-x86_64.AppImage 应用程序文件。
image.png
下载好之后,将其改名为linuxdeployqt,并chmod +x,然后复制到 /usr/local/bin/。然后命令行输入 linuxdelpoyqt –version,查看是否安装成功,若输出版本信息表示安装成功。

$ chmod +x linuxdeployqt-x86_64.AppImage
$ mv linuxdeployqt-x86_64.AppImage linuxdeployqt
$ mv linuxdeployqt /usr/local/bin
$ linuxdelpoyqt --version
#输出的版本信息
linuxdeployqt 5 (commit 37631e5), build 631 built on 2019-01-25 22:47:58 UTC

 

回到顶部

三、配置 qt 的环境变量

终端输入vim ~/.bashrc命令,修改 .bashrc 文件,在文件末尾追加以下内容,其中/home/zlkj/technology/5.9.7是我的Qt安装路径,大家要用自己的路径代替:

#add QT ENV
export PATH=/home/zlkj/technology/5.9.7/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/home/zlkj/technology/5.9.7/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/zlkj/technology/5.9.7/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/zlkj/technology/5.9.7/gcc_64/qml:$QML2_IMPORT_PATH

最后要source一下使 ~/.bashrc 这个shell文件立即生效,而不必注销并重新登录。

$ source ~/.bashrc

 

回到顶部

四、打包应用程序

(1)运行Qt生成release版本的可执行文件,勾选了“shadow build”,所以示例用的是build-cleanRobot-Desktop_Qt_5_9_7_GCC_64bit-Release文件夹下的cleanRobot可执行文件;
(2)创建一个文件夹,名称最好是用可执行文件的名称,然后将cleanRobot可执行文件复制到此文件夹下;
(3)使用 linuxdeployqt 进行打包,一定要加上-appimage选项,命令如下:

$ linuxdeployqt cleanRobot -appimage

执行上面命令出现提示信息,不用管,只是创建了一个需要你自己编辑的desktop文件:

ERROR: Desktop file missing, creating a default one (you will probably want to edit it)

到这一步,就把可执行文件的动态库等依赖文件都复制到该文件夹中了。

 

回到顶部

五、编写linux桌面图标启动(可选步骤)

修改qt 目录下的desktop文件。可以按照ubuntu 官方提示修改。
ubuntu desktop文件使用

#-- 全局安装(所有用户可用),将xxx.desktop 复制到/usr/share/applications  
#-- 当前用户可用, 将xxx.desktop 复制到 ~/.local/share/applications 目录即可
#--appName.desktop
[Desktop Entry]
Version=1.0 #app的版本
Name=cleanRobot #app的名字
Comment= this app use for xxx #说明信息 
Exec=/path/to/your/QtApp/cleanRobot #app的执行路径,绝对路径
Icon=/path/to/your/app_icon/cleanRobot.ico #icon 路径,绝对路径
Terminal=false #是否在终端启动,效果自己试一下就知道了
Type=Application
Categories=Utility;Application;

 

回到顶部

六、编写开机脚本 runApp.sh

执行以下命令,创建runApp.sh:

$ vim runApp.sh

写入以下内容:

#!/bin/bash
export LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/app/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/app/qml:$QML2_IMPORT_PATH
./cleanRobot

再给运行开机脚本runApp.sh添加可执行权限:

$ chmod +x runApp.sh

此时运行开机脚本,则可启动程序。其实到这一步就可以发布了,压缩成一个压缩包发布即可,可如果想继续打包成deb包,可以看下一步。
 

回到顶部

七、打包成deb包

deb是Debian Linux的软件包格式。一般来说是需要通过编译源码然后制作deb包,而这里是将前面生成的发布文件夹打包成deb包。步骤如下:

首先建立一个工作目录,比如在主文件夹下建立clean目录:

$ cd ~
$ mkdir clean
$ cd clean

因为安装软件包的时候默认是将文件释放到根目录下,所以我们这里设定安装路径为/usr/src:

$ mkdir -p usr/src #设定安装路径为/usr/src
$ cp -a ~/cleanRobot usr/src
$ mkdir DEBIAN

同时我们还需建立一个DEBIAN目录,用如下的方法在DEBIAN目录下创建一个control文件,并加入以下内容:

package: cleanRobot 
Version: 1.0.1
Section: utils
Priority: optional
Architecture: i386
Depends:
Installed-Size: 512
Maintainer: fengMisaka
Description: cleanRobot-deb

然后就可以使用dpkg命令构建deb包了,生成的包在/home目录下:

$ dpkg -b . /home/cleanRobot_1.0.1_i386.deb

安装deb包命令如下:

$ sudo dpkg -i soft_1.0.1_i386.deb 

就可以看到/usr/src多出了个cleanRobot目录,至此大功告成,运行开机脚本即可。

 

回到顶部

八、扩展

1、关于qt.conf

这个文件指定了qt 程序的运行环境,即我们可以使用qt.conf 指定qt程序的运行路径和库路径。内容如下所示:

# Generated by linuxdeployqt
# https://github.com/probonopd/linuxdeployqt/
[Paths]
Prefix = ./     #程序的运行路径
Libraries =  ./lib  #程序的库路径
Plugins = plugins   #插件路径
Imports = qml
Qml2Imports = qml

本文转载自:https://www.cnblogs.com/linuxAndMcu/p/11016322.html

shzwork
粉丝 15
博文 817
码字总数 10675
作品 0
厦门
私信 提问
使用linuxdeployqt,在linux下发布qt

linuxdeployqt github地址 https://github.com/probonopd/linuxdeployqt 下载release版本: linuxdeployqt-continuous-x8664.AppImage 应用程序 linuxdeployqt-continuous-x8664.AppImage.zs......

shzwork
09/19
19
0
Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/u014746574/article/details/79288727 linux qt 程序打包发...

shzwork
09/18
13
0
linux Qt程序打包(linuxdeployqt工具的使用)

linux Qt程序打包(linuxdeployqt工具的使用) 官方提供的最新版本基于Qt5.8的,用户可根据需要从源码编译成本机版本来使用,具体操作过程如下: 工具 1.linuxdeployqt 依赖工具: patchelf(必须...

shzwork
09/18
12
0
超详细Linux下QT使用appimage打包程序

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/kuer1379/article/details/82885810 一 打包工具 1.linuxd...

shzwork
09/18
35
0
linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件

下文中提及的inuxdeployqt patchelf appimagetool工具及示例下载地址: 链接: https://pan.baidu.com/s/1BGm_btMIe75uW9hOC09Xlg 提取码: 7ayh 需要创建目录及文件 xxx.AppDir xxx.AppDir/Ap...

shzwork
09/18
18
0

没有更多内容

加载失败,请刷新页面

加载更多

Kylin构建Cube过程详解

1 前言 在使用Kylin的时候,最重要的一步就是创建cube的模型定义,即指定度量和维度以及一些附加信息,然后对cube进行build,当然我们也可以根据原始表中的某一个string字段(这个字段的格式...

大数据技术进阶
19分钟前
4
0
Git保存密码

保存密码 $ git config --global credential.helper store 参数 --global 设置全局,如果用 --local 则只设置当前库 要注意保存时是用明文保存的,所以不要在公用电脑使用...

编程老陆
21分钟前
4
0
ofcms 说明文档

一、模板说明 项目概述 java 版CMS系统、基于java技术研发的内容管理系统、功能:栏目模板自定义、内容模型自定义、多个站点管理、在线模板页面编辑等功能、代码完全开源、MIT授权协议。 技术...

kuchawyz
28分钟前
4
0
理解CSS相对定位和固定定位

本文转载于:专业的前端网站➦理解CSS相对定位和固定定位 前面的话   一般地,说起定位元素是指position不为static的元素,包括relative、absolute和fixed。前面已经详细介绍过absolute绝对...

前端老手
38分钟前
4
0
iOS Xcode升级包地址(感谢大神)

下载地址:DeviceSupport

_____1____
52分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部