Qt 軟件發佈與打包

Windows 7, X64 平臺


比較煩瑣的方式是,運行Qt*.exe 程序,提示缺少 *.dll, 將缺少的*.dll拷貝到目錄中,感覺比較麻煩還容易出錯!網上大半都是這樣文檔,想想 QT 應該有解決這此笨辦法的工具(windeployqt),


  1. Qt 5程序在Windows上的發佈 將所有依賴的庫整理好,放在目錄中運行,打包! (缺點:存在多餘的庫)

  2. 使用 Process Explore / depends22_x64 等工具 獲取所有的依賴庫 (缺點:太麻煩了)

  3. windeployqt 找出依賴,並自動拷貝到當前目錄  



通過 Qt "D:\Qt\Qt5.4.0\5.4\msvc2013_64\bin\windeployqt.exe" 命令找出依賴的庫


windeployqt QtWebApp.exe

D:\qtcode\build-QtWebApp-Desktop_Qt_5_4_0_MSVC2013_64bit-Release\tmp\QtWebApp.ex
e 64 bit, release executable
Direct dependencies: Qt5Core Qt5Network Qt5Sql
All dependencies   : Qt5Core Qt5Network Qt5Sql
To be deployed     : Qt5Core Qt5Network Qt5Sql
Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not s
et.
Updating icuin53.dll.
Updating icuuc53.dll.
Updating icudt53.dll.
Updating Qt5Core.dll.
Updating Qt5Network.dll.
Updating Qt5Sql.dll.
Creating directory bearer.
Updating qgenericbearer.dll.
Updating qnativewifibearer.dll.
Creating directory sqldrivers.
Updating qsqlite.dll.
Updating qsqlmysql.dll.
Updating qsqloci.dll.
Updating qsqlodbc.dll.
Updating qsqlpsql.dll.

所依賴的 Qt 庫都會自動拷貝到當錄下!

注意:

Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not s

et

直接用 "VS2013 開發人員命令提示" 命令行去,執行剛纔的 windeployqt QtWebApp.exe,會將 "vcredist_x64.exe"(vc x64 運行最少環境)程序放入當前目錄。


建議:將所用到的庫與開發環境的路徑都放入 PATH 環境變量中設置好,這樣使用 windeployqt 都能找到對應的 dll.當然使用對應的 工具的 "命令行工具" 也是可以的!



wKioL1T1Ueey_wlqAAGtbUg5irY587.jpg

Qt綠色版的程序就這樣生成完成!


軟件打包(NSIS)

NSIS菜單 -- 編譯器 -- VNISEdit(編譯器環境)

圖片如下


wKiom1T1UYjzn44aAAMNz83DKTg399.jpg

wKioL1T1UuGBxbzpAAGppYRYPAE261.jpg

文件-- 新建腳本-嚮導 -- 下一步 -- 下一步到

wKiom1T1Ul3BnBX5AAFw5cRttKc539.jpg

授權文件就不折騰了!

下一步

wKiom1T1UtnAMUK9AAFdCnG0OW0592.jpg


選項中 "c:\path\to\file\AppMainExe.exe", c:\path\to\file\Example.file 都刪除


接來下,點擊上方的 "樹型" 按鈕 

wKioL1T1VI_hDwVxAAC-jxklMvo066.jpg

將“綠色版”的目錄填入"選擇的目錄", 選中"包含子目錄","單獨添加每個文件" -- 確定 -- 下一步

wKioL1T1VSvgwZUAAAHBdixSYqw844.jpg


wKiom1T1VHPxOmc4AAEt8LLY7nE706.jpg


完成,NSIS 自動編譯,生成打包後的文件!

輸出的信息:

已處理 1 個文件, 寫入輸出:
添加插件初始化函數... 完成!
處理頁面... 完成!
移除未用的資源... 完成!
生成語言表...完成!
生成卸載程序...完成!
輸出: "F:\Program Files\NSIS\xxxx\Setup.exe"
安裝程序:4 個頁面 (256 字節), 3 個區段 (需要 2) (3144 字節), 325 條指令 (9100 字節), 176 個字串 (2509 字節), 1 個語言表 (282 字節).
卸載程序: 2 個頁面 (128 字節), 1 個區段 (1048 字節), 69 條指令 (1932 字節), 93 個字串 (1561 字節), 1 個語言表 (226 字節).
數據模塊優化器儲存了 14592 字節 (~0.0%).
使用 lzma 壓縮.
EXE 頭部大小:                  46592 / 34816 字節
安裝代碼:                       2852 / 15667 字節
安裝數據:                   15898195 / 40645353 字節
卸載代碼 + 數據:                9689 / 15249 字節
CRC (0xD8BCB363):                  4 / 4 字節
總計大小:                   15957332 / 40711089 字節 (39.1%)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章