發佈方式
Qt發佈的時候,通常使用兩種方式:
(1)靜態編譯
(2)動態編譯
靜態編譯:把相關聯的庫一併引入可執行程序,雖然發佈簡單,但可執行程序較大。。。
動態編譯:相關聯的庫,以dll的形式引用,不被包含進可執行程序,發佈不方便,但可執行程序較小。。。
靜態發佈雖然不需要較多的dll,發佈簡單、方便,但是往往會牽扯到授權問題(詳情請查看Qt LGPL授權),動態發佈則可以避免。。。如果附帶了Qt的dll,就相當於發佈了Qt的dll,而這些庫是屬於Qt的,這足以保證使用者知道程序使用了LGPL版本的Qt(這部分還有待探討)。
查找依賴項
1、檢測可執行程序依賴模塊
下載工具:Dependency Walker
打開可執行程序,檢測依賴項
2、常用依賴庫
(1)Qt模塊庫
Qt5Cored.dll
Qt5Guid.dll
Qt5Widgetsd.dll
(2)ICU依賴庫
icudt51.dll
icuin51.dll
icuuc51.dll
(3)EGL依賴庫
libEGLd.dll
libGLESv2d.dll
(4)插件庫(Qt安裝目錄下即可找到D:\Software\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms)
圖片支持庫:imageformats
音頻、視頻支持庫:mediaservice
平臺支持庫:platforms
等等。。。
注意:查找對應的插件文件夾,粘貼到安裝目錄(一定要保持目錄結構,例如“platforms/***.dll”),詳細結構見打包發佈準備的文件組織結構。
(5)VS運行時庫(在VS安裝目錄下即可找到D:\Software\Microsoft Visual Studio\VC\redist)
msvcp100d.dll
msvcr100d.dll
注意:發佈程序的時候注意版本(Debug/Release)
如果是Debug版本的則是.前面帶d的(Qt5Cored.dll、Qt5Guid.dll、Qt5Widgetsd.dll)
如果是Release版本的則是.前面不帶d的(Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll)
以上是我所用到的依賴庫,基本可以解決問題,包括:
關於NSIS
1、NSIS簡介
(1)NSIS是什麼?
一款免費的Win32安裝、卸載系統!
(2)NSIS有什麼特點?
腳本簡潔高效、系統開銷小,進行安裝、卸載、設置、解壓文件也不在話下,幾乎可以做所有的事情。
2、工具
NSIS Edit + NSIS
3、使用方式
腳本嚮導 + 修改代碼 = 個性化安裝包
準備文件
以下是我即將打包的所有文件,安裝包目錄結構(包括:可執行程序、插件庫、運行時庫、授權文件、卸載程序圖標等等!)如下圖所示:
1、利用嚮導製作安裝包:
2、填寫應用程序基本信息
3、指定安裝程序所用選項
注意:這裏選擇語言爲SimpChinese
4、設置應用程序安裝目錄與授權文件
5、指定應用程序文件
6、指定創建應用程序圖標
7、選擇安裝程序完成後運行的動作
8、指定接觸安裝程序屬性
9、進行腳本編譯、保存
10、等待編譯完成,即可運行打包後的安裝包
大功告成之後,即可進行安裝!
(1)安裝程序
(2)此處顯示授權文件中的內容
(3)選擇安裝目錄
(4)運行程序,並顯示“自述文件”
(5)運行結果
關於Qt的打包工具瞭解一些,個人感覺NSIS用起來比較順手,腳本修改起來也方便,所以就推崇一下。。。若想將安裝包變得更加美觀,則需要手動修改腳本,更多信息請查找相關資料,此處不再多做介紹!
注:
技術在於交流、溝通,轉載請註明出處並保持作品的完整性。