目錄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