《最簡單的打包發布Qt應用(Windows,Linux)》要點:
本文介紹了最簡單的打包發布Qt應用(Windows,Linux),希望對您有用。如果有疑問,可以聯系我們。
1、把編譯的應用 主法式(例如 myqtapp.exe) 復制 到 另一簡單起名的文件夾,例如 c:\myapp
(把利用所需的SQLite等數據庫也一同放入)
2、從Qt安裝文件夾中復制對象windeployqt.exe 到 c:\myapp
(工具文件原地位可能是 C:\Qt\Qt5.8.0\5.8\mingw53_32\bin)
3、進入敕令提示符,并進入 文件 夾 c:\myapp
c:
cd myapp
4、然后使用 windeployqt 對象命令:
windeployqt myapp.exe
對象運行結束后,文件夾里看到 windeployqt 對象自動復制的插件文件夾和 dll文件、qm文件等.
5、把 c:\myapp 整個文件 打包,便是所需.
1、把編譯的應用 主法式(例如 myqtapp) 復制 到 另一簡單起名的文件夾,例如 主目錄下 ~/myapp
(把應用所需的SQLite等數據庫也一同放入,或者放入法式代碼指定的位置,例如 /var/opt內的位置,法式使用的普通圖片,按代碼指定也放入指定位置或 ~/myapp內,例如,我的是放在 ~/myapp/images)
2、程序必要用到的各個插件也從Qt安裝目錄中復制到主程序目錄內
(例如在 /opt/Qt5.8.0/5.8/gcc_64/plugins ,我用到 platforms 、 sqldrivers 和 imageformats,其中 platforms我只用到 libqxcb.so,則platforms夾內需libqxcb.so一個文件即可,sqldrivers是SQLite,Mysql驅動,imageformats是圖片調用必要)
3、復制必需的 庫文件 ,先建立 腳本(cplib.sh),
vi ~/myapp/cplib.sh
內容是:
#!/bin/bash
LibDir=$PWD"/lib"
Target=$1
lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))
$(mkdir $LibDir)
for Variable in ${lib_array[@]}
do
cp "$Variable" $LibDir
done
終端下執行敕令:
cd ~/myapp
chmod +x cplib.sh
./cplib.sh myqtapp
完成后,可以見到在 ~/myapp目錄內生成lib目錄,內有主程序需用到的多個庫文件,從中取出需要的部分,不需要全部文件
建立 ~\qtlib文件夾,從 ~/myapp/lib 內復制以下必須庫文件:
libicudata.so.56、libicui18n.so.56、libicuuc.so.56、libQt5Core.so.5、libQt5DBus.so.5、libQt5Gui.so.5、libQt5Network.so.5、libQt5PrintSupport.so.5、libQt5SerialPort.so.5、libQt5Sql.so.5、libQt5Widgets.so.5件和文件名中包括xcb的全部文件,例如 libX11-xcb.so.1、libxcb.so.1等
(libQt5Network.so.5、libQt5PrintSupport.so.5、libQt5SerialPort.so.5、libQt5Sql.so.5這些是我的主法式使用,自動找到,如沒有對應功能,則沒有對應文件)
4.復制 libqxcb.so 必要的庫文件
先把 cplib.sh 復制 一份 ,放入 ~/myapp/platforms,然后
cd ~/myapp/platforms
./cplib.sh libqxcb.so
完成后, ~/myapp/platforms目錄內生成lib目錄,內有libqxcb.so需用到的多個庫文件,從中取出需要的部分,不需要全部文件,也是復制 到 ~\qtlib文件夾
libQt5DBus.so.5、libQt5XcbQpa.so.5、和文件名中包括xcb的全部文件.
5.目標機械安裝 qtlib
把 qtlib 文件夾內容 放入 /usr/local/lib/qtlib
sudo權限 在/etc/ld.so.conf.d 下增長文件 usr-libs.conf
內容 是
/usr/local/lib/qtlib
然后 執行 sudo ldconfig
6.最后檢查是否缺少 其他庫文件,在終端下 運行 主法式
如沒有 正常運行,會有失足信息提示,查看其中 的 庫文件名 libXXXX.so.XX,在Qt的安裝目錄 中找文件
例如在:/opt/Qt5.8.0/5.8/gcc_64/lib
要注意的是區分所復制出來的文件不克不及是鏈接文件同,要找到真正的庫文件,復制 到 /usr/local/lib/qtlib ,并重命名這庫文件 在出錯信息中顯示的正確的文件名
從新執行 sudo ldconfig
重復 這第6步,直到能正常啟動主程序,一般情況 下經過前面5步后,正常方式 執行應用(myqtapp)或應用啟動器(myqtapp.desktop)后,沒有正常顯示出畫面,才必要這第6步.
7. 最后, ~/myapp文件夾 就是 應用程序包括文件,一般安裝放入 /opt/myapp內,有變動的文件安裝一般放入/var/opt/myapp內,必需的Qt庫文件一般安裝放入 /usr/local/lib/qtapp(參照第5步),目標機器上就安裝完成,最后,建立桌面啟動器(其中 指定了 圖標)
vi myqtapp.desktop
內容是
[Desktop Entry]
Version=1.0
Name=myqtapp
GenericName=myqtapp
Comment=myqtapp
Exec=/opt/myapp/myqtapp
Icon=/opt/myapp/images/myapp.ico
Terminal=false
Type=Application
Categories=Application;
StartupNotify=true
Terminal=false
X-Desktop-File-Install-Version=0.22
8.打包,安裝 都實現了.
歡迎參與《最簡單的打包發布Qt應用(Windows,Linux)》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/9161.html