教程摘自網上各大部落格、貼吧、論壇,結合自己的實踐做了一些實質性的修改。
一、安裝
建議将其安裝某個驅動器的根目錄下,比如:E:\ wxWidgets-2.8.12 目錄下(尾部數字以您所使用的wxWidgets版本為準)。
二、編譯
上一步安裝wxWidgets,僅得到源代碼檔案及一些說明。我們還需要将其中的源代碼編譯成“庫”檔案。
今天我們将把wxWidgets編譯譯成四種形式:
動态連結庫 + 調試版
動态連結庫 + 發行版
靜态連結庫 + 調試版
靜态連結庫 + 發行版
正式開始編譯之前,必須確定已經在電腦上正确安裝好mingw32環境,安裝C::B時選擇MINGW版,就會在C::B目錄下安裝MINGW編譯器。
并保證環境變量設定好:
右擊我的電腦→屬性→進階系統設定→環境變量→選擇path變量(如果沒有的話建立path變量)
→編輯path變量(不同的變量值之間用;隔開)→在變量值中輸入“E:\CodeBlocks\MinGW\bin;E:\CodeBlocks\MinGW\include;E:\CodeBlocks\MinGW\lib;”(如果你的MINGW安裝路徑不同,求按照你的路徑輸入)
(以下四個版本都需要編譯,而不是僅編譯其一)
(1)靜态連結(調試版)
步驟1:用記事本打開wxWidgets安裝目錄下,子目錄“build\msw\”下面的“config.gcc”檔案。
步驟2:找到以下内容,并確定将等号(?=)後面的值如下面内容所示。另外其它未指部分的内容,請保持不變。
步驟3:請确認儲存了本步的修改成果,再繼續下一步。
# What type of library to build? [0,1]
SHARED := 0
# Compile Unicode build of wxWidgets? [0,1]
UNICODE := 1
# Type of compiled binaries [debug,release]
BUILD := debug
步驟4:
SHARED 為 0表示要編譯的是靜态庫,而不是動态庫;
UNICODE為1,表示要編譯成UNICODE版本,這一項在本次編譯過程中始終為1。
BUILD為debug,表示要編譯成含有調試資訊的版本。
步驟5:
打開“開始”菜單,選擇“運作”,輸入cmd,進入控制台視窗,然後在其内通過cd指令,切換到wxWidgets安裝目錄下的“build\msw”路徑。比如您把wxWidgets
安裝在“E:\wxWidgets-2.8.12”,則過程如下:
E: (回車)
cd wxWidgets-2.8.12(回車)
cd build\msw (回車)
步驟6:在第5步的控制台中,繼續輸入以下指令:
mingw32-make.exe -f makefile.gcc (回車)
步驟7:這将開始一段長約30分鐘的編譯過程(視你的機器配置而定)。
(2)靜态連結(發行版)
編譯過程和前一版本主要差别在于“config.gcc”檔案的修改内容:
# What type of library to build? [0,1]
SHARED := 0
# Compile Unicode build of wxWidgets? [0,1]
UNICODE := 1
# Type of compiled binaries [debug,release]
BUILD := release
其它操作方法不變。
(3)動态連結(調試版)
編譯過程和前一版本主要差别在于“config.gcc”檔案的修改内容:
# What type of library to build? [0,1]
SHARED := 1
# Compile Unicode build of wxWidgets? [0,1]
UNICODE := 1
# Type of compiled binaries [debug,release]
BUILD := debug
其它操作方法不變。
(4)動态連結(發行版)
編譯過程和前一版本主要差别在于“config.gcc”檔案的修改内容:
# What type of library to build? [0,1]
SHARED := 1
# Compile Unicode build of wxWidgets? [0,1]
UNICODE := 1
# Type of compiled binaries [debug,release]
BUILD := release
其它操作方法不變。
三、結束
這是一次漫長的編譯過程,至此,我們完成了四個版本的wxWidgets庫的編譯。它是我們編寫圖形使用者界面基礎。
為了確定大家盡量順利地完成編譯,我們在“config.gcc”僅選擇了最基本的編譯選項。是以一些強大wxWidgets功能子產品沒有被編譯成庫,比如前面提到的非Unicode版,另外沒有支援OpenGL、OBDC等功能。後面需要時,我們将會加上,并且令大家放心的是,這并不會帶來又一次wxWidgets漫長完全編譯。