製作Qt Runtime安裝檔

官方沒有提供Qt runtime,或許是因為Qt每個版本的dll檔都略有差異,使用上一個版本的dll檔,可能會讓程式產生部分錯誤,所以才乾脆讓開發者自己想辦法。

在未安裝Qt開發環境的電腦中執行Qt程式其實不難,辦法有三個:

一,使用靜態編譯,優點是程式跑得快,而且攜帶方便。缺點是需要先將整個函式庫重新做靜態編譯,耗時耗工,而靜態編譯的速度也叫人難以苟同,所以這個選項就先跳過。

二,將Qt程式與其所需的dll檔一併打包起來,讓Qt程式在資料夾內自取自足。優點是直覺,且可攜性高。但缺點是每發行一次都要夾帶dll檔,增加不少程式的重量。而不同的Qt程式之間也無法共用dll,形成一種浪費。

三,讓使用者先安裝Qt runtime,建立環境,如此可直接發行單一的Qt程式檔,無須夾帶dll。優點是輕巧,缺點是增加使用者的麻煩(大忌!)。

因為我只是偶爾想傳程式給別人看看,所以不必考慮使用者的麻煩與否,對我而言,最重要的還是程式的實質大小,一種相當直覺的想法——程式當然是能縮則縮、越小越好——所以在這邊我選擇使用第三種解決辦法。

只要倚賴工具,製作安裝檔其實一點都不難。以下便以Inno Setup這個便捷的安奘檔製作工具為例,一步一步實作Qt runtime的安裝程式。

1.下載並安裝Inno Setup。http://www.softking.com.tw/soft/clickcount.asp?fid3=19499

2.開啟Inno Setup Compiler,File->New 進入Script Wizard模式:

 

歡迎畫面,按next。

InnoSetup_001

 

可以輸入自己程式的名稱、版本、公司和網址。隨便輸入即可。

InnoSetup_002

 

記得將Allow user to change the application folder前面框框的打勾取消,否則被修改安裝路徑後,環境變數那邊的設定就無效了。

InnoSetup_003

 

這邊也要將Allow user to start the application after Setup has finished前面框框的打勾取消,因為Qt runtime只是單純裝入dll檔,執行那個預設程式並沒有意義。

接著加入所有必須的dll,以4.3.3版為例,共有以下十四個檔案:

MWSnap_029

InnoSetup_004

 

打上程式集中的資料夾名稱,並把Allow user to create a desktop icon前面的打勾取消,因為與前面一樣,沒有意義。

InnoSetup_005

 

加入說明文件,看有沒有這個需要吧。

InnoSetup_006

 

多語系選項,我沒試過中文,因為安裝過程只是簡單地按Next而已,對多數人而言應該不難才是。

InnoSetup_007

 

選擇安裝檔的名稱、圖示與輸出路徑,依個人喜好增添。

InnoSetup_008

 

OK,流程跑完了。

InnoSetup_010

 

3.程式回到主畫面,會看到整篇密密麻麻的程式碼,先別急著編譯,在[Setup]與[Languages]之間加入下面這段環境變數的設定:

[Registry]
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "Path"; ValueData: "{olddata};C:\Program Files\Qt 4.3.3 runtime"

 

接著我們要在程式集中的資料夾加入反安裝捷徑,將

[Icons]
Name: "{group}\Qt runtime"; Filename: "{app}\MyProg.exe"

改成:

[Icons]
Name: "{group}\{cm:UninstallProgram,Qt 4.3.3 runtime}"; Filename: "{uninstallexe}"

 

4.點選上頭的綠色圖示(run),靜候程式編譯,完成後到選定的輸出資料夾找找看,可以看到一個安裝程式檔,忙到這邊,大功告成!



Qt 4.3.3 Runtime安裝檔:
http://skyblade.myweb.hinet.net/QT/Qt_4_3_3_runtime.exe

No response to “製作Qt Runtime安裝檔” ;

張貼留言