30 8月 2012

[Code::Blocks] Compile Code::Blocks source code in Windows

Code::Blocks是一款出色的跨平台IDE,是用跨平台的語言wxWidgets所寫的,由於wxWidgets並不像Java一樣,有Virtual Machine,是可以build成原生的執行檔執行的,所以執行的速度會快很多。由於最近想寫看看Code::Blocks的PlugIn,所以就試著build CB的source code看看,用CB來build CB倒是挺有趣的。


1. Install Code::Blocks build

Code::Blocks download release build
選擇windows的安裝版 :
建議選擇 codeblocks-x-mingw-setup.exe,裡面包含了MinGW的GCC compiler & GDB debugger
安裝時建議將所有的Contrib Plugins選起來 (之後不需要的話,再移除即可)

2. Setup Code::Blocks

Settings | Compiler & debugger ... | Global compiler settins | Toolchain executables
執行Auto-detect,偵測MinGW的安裝路徑
執行Auto-Detect


Settings | Compiler & debugger ... | Debugger settings
可以選擇將Evaluate expression under cursor的選項打勾,這樣的話,可以在Run time debug時,滑鼠移到變數上,即可秀出變數目前的值是多少,這個功能很方便,不過預設是關閉的。

將Evaluate expression under cursor打勾


3. Download source code from SVN

Code::Blocks download code from SVN

  • SVN protocol
    • svn://svn.berlios.de/codeblocks/trunk 
  • HTTP protocol
    • http://svn.berlios.de/svnroot/repos/codeblocks/trunk 

將source code透過svn下載到local端,可以選擇下載trunk或是tags/branch裡的code

4. Download wxWidget library

wxPack Download Page
最簡單的方法就是下載wxPack,裡面有所有已經build好的dll, lib檔(包含VC與MinGW的版本),這個pack檔非常的大(v2.8 : 280MB),記得先確定最新的Code::Blocks所使用的wxWidgets的版本是多少,再下載相對應的wxPack版本

安裝時,可以選擇要安裝wxWidgets的VC or MinGW版本的Dll, Lib檔,全部安裝的話,需要將近3GB的空間啊!

5. Compile Code::Blocks source code

首先開啟已經安裝好的Code::Blocks,再開啟下載好的Code::Blocks source code裡的 {CB Install Path}/src/CodeBlocks.cbp 檔,這個檔案是Code::Blocks的project檔
這時應該會跳出一個視窗,要求你設定全域參數$(wx)的相關路徑,所以必須要填入在第4步的wxPack的安裝路徑,其他的include, lib, obj不需要設定,CB會自動找base底下的預設相對路徑

最後,就可以開始最後一步了,Build Project!如果設定都沒錯的話,應該就會一鏡到底,完全沒有error才對。

Compile過後的Output folder會在{CB source code install path}\src\devel

CodeBlocks.cbp並不包含contrib plugins,不過如果只是想執行CB的話,並不一定要build contrib plugins,如果想build ContribPlugins的話,可以開啟ContribPlugins.workspace來build看看,可能還要安裝額外的Library。

6. 執行

來跑看看build後的codeblocks吧
要先執行過src\update.bat,會將執行所需要的檔案直接複製到src\develsrc\output

build後link的地方會在devel folder底下
執行裡面的codeblocks.exe的話,用MinGW build的話,第一次應該會出現一個error message : 電腦遺失 wxmsw28u_gcc.dll / mingwm10.dll
解決辦法:必須手動將
  • {wxPack Install Path}\lib\gcc_dll\wxmsw28u_gcc.dll
  • {CB Install Path}\MinGW\bin\mingwm10.dll
複製到devel底下,再執行一次就可以了

沒有留言: