跳到主要內容

Qt 靜態連結程式庫編譯方法

詳細的原理請參考原文說明,這裡只針對建置與使用的步驟做整理。
原文: Building a static Qt for Windows using MinGW

使用靜態程式庫主要分2大步驟:
1. 事前準備
1. 建置
2. 設定環境

事前準備:
1. 安裝Qt,到Qt下載頁,選擇 Qt 5.6.0 for Windows 32-bit (MinGW 4.9.2, 1.0 GB)
2. 安裝Windows PowerShell,Win8以上已經有內建,Win7要從微軟下載安裝檔安裝,Vista以       前是無法裝PowerShell的,可以直接放棄
3. 安裝 7-Zip,下載連結

建置:
原文提供了一個PowerShell腳本 ,可以直接載來用,不過要做一些小修改:
param(
    $QtSrcUrl = "http://download.qt.io/official_releases/qt/5.6/5.6.0/single/qt-everywhere-opensource-src-5.6.0.7z",
    $QtStaticDir = "C:\Qt\Static",
    $QtVersion = "",
    $MingwDir = "",
    [switch]$NoPause = $false
)
$MingwDir = "" 這行請改為 $MingwDir = "C:\Qt\Tools\mingw492_32",不然script會找不到編譯器。
改完之後直接按右鍵 -> 用PowerShell執行即可。我的電腦跑了大概三個半小時完成建置。

設定環境
開啟Qt Creator,選工具->選項->建置並執行->Qt版本->新增,選擇qmake路徑,依照上方的步驟應該為: C:\Qt\Static\5.6.0\bin\qmake.exe,重新將版本名稱命名為: Qt 5.6.0 Static,按Apply套用設定。

不過此時會有一個小問題,在qmake位置下方會顯示"No qmlscene installed",解決方法是將下面幾個檔案從 C:\Qt\5.6\mingw49_32\bin 複製過來:
qmlscene.exe
Qt5Core.dll
Qt5Gui.dll
Qt5Network.dll
Qt5Qml.dll
Qt5Quick.dll
Qt5Widget.dll
完成後再重新開啟選項選單,就不會看到這個訊息了。

下一步是選擇工具->選項->建置並執行->Kits->新增,並將Qt版本選為 "Qt 5.6.0 Static",名稱改為: "Desktop Qt 5.6.0 MinGW Static 32bit" ,至此完成設定。

往後在建立 project時,就可以選擇要適用static還是dynamic程式庫了

建議的使用方式為:
debug使用dynamic,編譯速度較快,
release使用static,比較好發布


留言

這個網誌中的熱門文章

Galgame引擎概論

作為我的第一篇文章,先來談談galgame引擎的由來。 何謂galgame引擎? 那我們先從以製作galgame的角度說起。 最原始的想法就是直接使用任何一種支援GUI的程式語言,直接以程式碼寫出遊戲的流程以及各項功能。這項工作並不難,其實galgame程序的複雜度,在所有遊戲當中算是相當低的。

OllyDbg教學(二) -- Hello, World!解析

這次我們的目標是透過觀察Hello World程式,來了解使用OllyDbg的一般流程。 原始程式代碼如下: 編譯指令: gcc -o main.exe main.c 原始碼 main.c: 編譯後產生的main.exe,直接用OllyDbg載入即可。

BGI引擎概論

BGI全名 Buriko General Interpreter,別名Ethornell,為Buriko公司所開發的遊戲引擎。 較著名的例子有: Lump of Sugar全系列 SMEE近期新作 AUGUST近期新作 HOOKSOFT近期新作 由於沒有公開SDK,網路上幾乎沒有正式的相關內部資訊。 若要做漢化,這篇是很好的入門: Galgame 汉化破解初级教程:以 BGI 为例,从解包到测试