跳到主要內容

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,比較好發布


留言

這個網誌中的熱門文章

muv漢化補丁修復

muv的漢化補丁對Win10會有相容性問題,這自從補丁發佈到現在,漢化組都沒有修正的意思,這問題也折騰我好一陣子了,最後決定還是自己debug比較實際。 其實解決方法意外的簡單,不過追蹤的過程挺有趣的,也讓我學到了一個hook的實作方法。 在win10下啟動漢化補丁會出現下面這個對話框:

OllyDbg教學(一) -- 基本操作

這篇簡單介紹一下OllyDbg的用法,還有一些使用上的技巧,這邊假設讀者對程式的執行已經有一定的了解。 OllyDbg 1 主頁 OllyDbg 2 主頁 要用OllyDbg來debug一個程式有兩種方法,第一種是直接以OllyDbg啟動程式,另一種則是先啟動程式,在用OllyDbg附加到執行中的程式。一般用第一種方法就可以成功,第二種方法通常用於一些需要特殊啟動環境的程式。

SiglusEngine地區限制破解

新版網誌: https://casidi.github.io/2016/07/29/siglusengine-cracking/ 採用這個引擎的比較有名的就是key跟SAGA PLANETS這兩家公司了。 這次以SAGA PLANET做的一個小遊戲為分析對象,遊戲可以免費下載: 【はつゆきパズル☆神経衰弱☆】 下載下來的是一個壓縮檔,檔名為 hatsukipuzzle01.zip,直接解壓縮會得到一個資料夾, 名字為: はつゆきパズル 其實遊戲必要的只有 はつゆきパズル\StartData\GameData 這個資料夾,直接把GameData資料夾搬到隨便一個地方,執行SiglusEngine.exe即可啟動遊戲。