1. 程式人生 > >NSIS進行PC端程式安裝包的生成(一)------基本安裝和使用(使用Qt釋出的程式)

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

的程式。這個程式是專門為Qt程式自動尋找需要釋出的程式所需要依賴項。首先你需要將release版本下生成的可執行檔案放到一個資料夾內,比如我的一個程式名叫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 編譯環境”,然後在“檔案->新建指令碼->嚮導”裡面一步一步選擇,就能進行簡單的安裝包生成。當然複雜的方式如何使用呢?等我下次有時間繼續研究後再補充。