(2)動態編譯
靜態編譯:把相關聯的庫一併引入可執行程序,雖然發佈簡單,但可執行程序較大。。。
動態編譯:相關聯的庫,以dll的形式引用,不被包含進可執行程序,發佈不方便,但可執行程序較小。。。
靜態發佈雖然不須要較多的dll,發佈簡單、方便,可是每每會牽扯到受權問題(詳情請查看Qt
LGPL受權),動態發佈則能夠避免。。。若是附帶了Qt的dll,就至關於發佈了Qt的dll,而這些庫是屬於Qt的,這足以保證使用者知道程序使用了LGPL版本的Qt(這部分還有待探討)。
查找依賴項
一、檢測可執行程序依賴模塊
下載工具:Dependency Walker
打開可執行程序,檢測依賴項
檢測完成以後,將所需依賴庫拷貝進去。。。再次進行檢測,反覆進行。
二、經常使用依賴庫
(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
一、NSIS簡介
(1)NSIS是什麼?
一款免費的Win32安裝、卸載系統!
(2)NSIS有什麼特色?
腳本簡潔高效、系統開銷小,進行安裝、卸載、設置、解壓文件也不在話下,幾乎能夠作全部的事情。
二、工具
NSIS Edit + NSIS
三、使用方式
腳本嚮導 + 修改代碼 = 個性化安裝包
準備文件
如下是我即將打包的全部文件,安裝包目錄結構(包括:可執行程序、
插件庫、運行時庫、受權文件、卸載程序圖標等等!)以下圖所示:
一、利用嚮導製做安裝包:
二、填寫應用程序基本信息
三、指定安裝程序所用選項
注意:這裏選擇語言爲SimpChinese
四、設置應用程序安裝目錄與受權文件
五、指定應用程序文件
六、指定建立應用程序圖標
七、選擇安裝程序完成後運行的動做
八、指定接觸安裝程序屬性
九、進行腳本編譯、保存
十、等待編譯完成,便可運行打包後的安裝包
大功告成以後,便可進行安裝!
(1)安裝程序
(2)此處顯示受權文件中的內容
(3)選擇安裝目錄
(4)運行程序,並顯示「自述文件」
(5)運行結果
關於Qt的打包工具瞭解一些,我的感受NSIS用起來比較順手,腳本修改起來也方便,因此就推崇一下。。。若想將安裝包變得更加美觀,則須要手動修改腳本,更多信息請查找相關資料,此處再也不多作介紹!