目录html
回到顶部linux
linuxdeployqt 是Linux下的qt打包工具,能够将应用程序使用的资源(如库,图形和插件)复制到二进制运行文件所在的文件夹中。git
回到顶部github
去github直接下载编译好的 linuxdeployqt-x86_64.AppImage 应用程序文件。
下载好以后,将其更名为linuxdeployqt,并chmod +x,而后复制到 /usr/local/bin/。而后命令行输入 linuxdelpoyqt –version,查看是否安装成功,若输出版本信息表示安装成功。shell
$ 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
回到顶部ubuntu
终端输入vim ~/.bashrc
命令,修改 .bashrc 文件,在文件末尾追加如下内容,其中/home/zlkj/technology/5.9.7是个人Qt安装路径,你们要用本身的路径代替:vim
#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文件当即生效,而没必要注销并从新登陆。bash
$ source ~/.bashrc
回到顶部app
(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)
到这一步,就把可执行文件的动态库等依赖文件都复制到该文件夹中了。
修改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:
$ 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是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目录,至此大功告成,运行开机脚本便可。
一、关于qt.conf
这个文件指定了qt 程序的运行环境,即咱们可使用qt.conf 指定qt程序的运行路径和库路径。内容以下所示:
# Generated by linuxdeployqt # https://github.com/probonopd/linuxdeployqt/ [Paths] Prefix = ./ #程序的运行路径 Libraries = ./lib #程序的库路径 Plugins = plugins #插件路径 Imports = qml Qml2Imports = qml