NSIS進行PC端程式安裝包的生成(一)------基本安裝和使用(使用Qt釋出的程式)
編寫完的程式進行安裝包的生成
為了研究將程式進行打包,首先必須保證自己的檔案已經完整了,能夠在任何一臺電腦上執行。下面一點一點介紹。由於我使用的是Windows作業系統,所有下面的配置都僅僅代表Windows平臺。
Qt程式圖示的修改
在使用Qt進行打包之前,首先需要給自己的程式新增一個合理的圖示,這樣可以使得程式更加美觀。在Qt assistant中輸入“Setting the Application Icon
”關鍵字,可以查到使用自己圖示的方法有兩種
第一種方法:直接法
- 首先,找到一個自己程式想要使用的圖片,格式為
.ico
字尾。比如myappico.ico
,把這張圖片儲存到和你原始檔在同一個資料夾下面。 - 其次,在你的
.pro
檔案裡面加入一句話
RC_ICONS = myappico.ico
- 最後,重新執行程式,即可使得你的
.exe
檔案的圖示變成你設定的myappico.ico
這張圖片的樣子了
第二種方法:使用.rc
檔案法
一般如果你的程式裡面已經有一個資原始檔myapp.rc
,這樣就可以直接在你的資原始檔裡面加入一句話:
IDI_ICON1 ICON DISCARDABLE "myappico.ico"
然後在你的.pro
檔案裡面加入一句話:
RC_FILE = myapp.rc
最後,重新執行程式,即可使得你的.exe
檔案的圖示變成你設定的myappico.ico
生成Qt所有的依賴檔案
當你將程式成功執行之後,會在release資料夾下面生成一個.exe
字尾的可執行檔案,這個檔案一般不能直接開啟,它會依賴很多Qt自己的動態連結庫,如果自己在一臺普通電腦上,嘗試開啟,就會提示缺少某些.dll
檔案。這時我們可以在Qt的安裝目錄下面尋找這些.dll
檔案,以我的Qt5.7版本為例子,其目錄一般是
你自己安裝Qt的路徑:\Qt\Qt5.7.0\5.7\mingw53_32\bin
當然,這種方法比較慢,因為一般一箇中型的程式可能需要依賴很多.dll
檔案,有一個簡單方法,在上面這個目錄下面,Qt會提供一個名叫windeployqt.exe
test.ext
,放置在路徑C:\Users\Administrator\Desktop\test
下,如圖: 圖片連結
然後在當前資料夾下開啟命令列輸入(我已經把你自己安裝Qt的路徑:\Qt\Qt5.7.0\5.7\mingw53_32\bin
加入到系統PATH變數裡面了,因此可以直接使用):
cd C:\Users\Administrator\Desktop\test
windeployqt test.exe
這樣執行之後就發現該路徑下多了很多Qt的動態連結庫,如圖:
圖片連結
這樣,在一般電腦上就可以運行了。當然有時還是無法執行,這種情況下可能你使用了第三方庫。但是這樣通常情況下需要的檔案比較少,因此可以根據提示缺少的.dll
檔案單獨進行拷貝,減少了很多步驟。
使用安裝工具
在得到可以在普通機器上執行的所有程式和其依賴檔案後,就可以進行打包。通過網上調研,我發現了很多簡單的打包工具。當然這都不符合我的胃口,我喜歡比較有意思的打包工具,最後就決定使用NSIS
軟體。NSIS(Nullsoft Scriptable Install System)是一個開源的 Windows 系統下安裝程式製作程式。它提供了安裝、解除安裝、系統設定、檔案解壓縮等功能。這如其名字所指出的那樣,NSIS 是通過它的指令碼語言來描述安裝程式的行為和邏輯的。雖然比較複雜,但是這樣就可以自己定製安裝程式的每一個步驟。
首先需要到下載頁面進行下載。我找到了一個比較全的中文安裝包,裡面有好的相關幫助資料和指令碼編輯器,在這裡可以下載。
安裝後可以開啟“VNISEdit 編譯環境”,然後在“檔案->新建指令碼->嚮導”裡面一步一步選擇,就能進行簡單的安裝包生成。當然複雜的方式如何使用呢?等我下次有時間繼續研究後再補充。