【Code::Blocks】windows 環境下編譯 Code::Blocks(已修正)

來源:互聯網
上載者:User

標籤:eid   開啟   pat   os x   教材   建議   project   發布   html   

Code::Blocks 在2012-11-25發布了最新的12.11版本,相比上一個版本(10.05),Code::Blocks 進行了許多改進和更新(Change log)。

 

引用 Wikipedia:Code::Blocks:

 

Code::Blocks是一個免費、開源、跨平台的IDE,使用C++開發,並且使用wxWidgets做為GUI函式庫。Code::Blocks使用了外掛程式架構,其功能可以使用外掛程式自由地擴充。目前, Code::Blocks主要針對開發C/C++程式而設計。

Code::Blocks目前支援Windows、Linux及Mac OS X數種平台。使用者亦能夠在FreeBSD環境中建設Code::Blocks[1].

 

Code::Blocks 作為一個輕型的 C/C++ IDE,相比於 Visual Studio、Eclipse 等大型IDE更適合新人使用。國內大學的大部分 C/C++ 教材仍以 1998 年發行的 Visual C++ 6.0(簡稱VC 6)為IDE講解,實屬坑害學生。VC 6發布已有十幾年,無法有效相容Windows 7/8系統,不支援 C/C++ 的最新標準,推薦大家儘快放棄它!

 

下載Code::Blocks:

 

推薦下載含MinGW編譯器的 codeblocks-12.11mingw-setup.exe 版本,不含編譯器的版本需要手動設定編譯器。

關於漢化:

1. Code::Blocks官方有語言國際化項目,不過提供的項目模板仍為 2006-06-30 所建立,包含詞條僅2173個,完全無法滿足最新版的8000個左右詞條(粗數量級估計),所以不建議使用。

2. 10.05 版本的Code::Blocks倒是有一個不錯的中文語言套件,在使用這個版本的同學可以去下載(內含使用協助,不再解釋)。

3. 對於12.11版本的漢化工作尚無人進行,不過有同志一直在堅持做法語的國際化工作,從他那裡可以學習到一些Code::Blocks語言國際化的技術。(對於新版的漢化工作,我比較有興趣,相關準備工作仍在進行,希望能有個結果吧!)

 

OK,說了好多,迴歸正題。

在Windows中編譯Code::Blocks的詳細介紹參考了Code::Blocks Wiki:Installing Code::Blocks from source on Windows。

 

編譯源碼的步驟:

 

1.安裝最新版的Code::Blocks,因為需要用它來編譯Code::Blocks源碼(禁止聯想到“雞生蛋與蛋生雞”的話題);

 

和注意事項已經在上邊給出,不再詳細說明。Code::Blocks的基本使用方法和大多數IDE類似,也不再贅述。

 

2.下載並編譯wxWidgets,因為Code::Blocks的GUI部分需要引用這個庫;

 

wxWidgets是開源、跨平台的C++ GUI庫,詳細介紹請參考Wikipedia:wxWidgets。

編譯過程比較長,需要半個多小時,而且我編譯了3次才成功。如果大家不想麻煩,可以直接下載我的release,解壓即可。

:wxWidgets stable for Windows

將下載到的 wxMSW-2.8.12.zip 解壓到 H 盤根目錄(根據自己的情況選擇);

編譯需要用到 MinGW 編譯器,因為我們安裝的 Code::Blocks 已經包含了這個編譯器,所以不需要重新安裝。

Code::Blocks 的安裝目錄是:H:\Program Files\CodeBlocks,MinGW 的目錄是:H:\Program Files\CodeBlocks\MinGW。如果經常手動編譯 C/C++ 源碼,可以將下面兩個路徑添加到系統的全域變數中:H:\Program Files\CodeBlocks\MinGW\bin;H:\Program Files\CodeBlocks\MinGW\mingw32\bin;

編譯開始。

首先,為了防止串連時記憶體不夠用:

If you are using a recent version of MinGW you may find that the object files are too large and that the linker runs out of memory. To fix this problem you need to edit config.gcc so that inline functions are not exported, by modifying the CFLAGS and CXXFLAGS lines to:

CFLAGS ?= -fno-keep-inline-dllexport

CXXFLAGS ?= -fno-keep-inline-dllexport

需要對 H:\wxMSW-2.8.12\build\msw/config.gcc 進行上面的修改。用任意的文字編輯器開啟 config.gcc ,進行修改即可。

 

開啟命令提示字元視窗,切換目前的目錄:

cd /d H:\wxMSW-2.8.12\build\msw

設定臨時環境變數(如果上一步已經設定 MinGW 的環境變數,直接跳到下一步):

set path=H:\Program Files\CodeBlocks\MinGW\bin;H:\Program Files\CodeBlocks\MinGW\mingw32\bin;

執行命令,大約需要30秒:

mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 clean

執行命令,大約需要30分鐘,會有20多條警告,忽略之:

mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1

 

結束後,會在 H:\wxMSW-2.8.12\lib\gcc_dll 目錄產生 wxmsw28u_gcc_custom.dll 這個就是我們需要的。

 

3.通過SVN更新Code::Blocks源碼或下載打包的源碼;

 

打包過的源碼可以從這裡下載,SVN更新源碼的方式可以參考這裡。我們採用了打包的源碼 codeblocks_12.11-1.tar.gz。

將源碼解壓到 H 盤,修改目錄名 codeblocks-12.11release8629 為 codeblocks,以方便操作。

 

4.載入源碼項目,設定全域變數,開始編譯。

 

用已經安裝好的Code::Blocks開啟專案檔 H:\codeblocks\src\CodeBlocks.cbp;

會快顯視窗,請求設定環境變數(如果沒有快顯視窗,執行菜單 Settings->Global Variables...即可):

這一個參數用來指定發布類型,參見What goes in cb_release_type。

可填入:

-g 代表debug(調試) 或 

-o2 帶表optimised(最佳化)

 

然後開始編譯即可。(官方的Wiki中說選擇 Build-target 為 Compiler,這麼做可能會出錯,論壇中的朋友建議為 All)

不出意外的話,最終會看到如下資訊:

|=== Build finished: 0 errors, 438 warnings (7 minutes, 8 seconds) ===|

代表編譯成功。

 

5.整合資源檔,創造自己的Code::Blocks發行版。

 

首先,將 H:\wxMSW-2.8.12\lib\gcc_dll\wxmsw28u_gcc_custom.dll 拷貝到 H:\codeblocks\src\devel 目錄,以保證發布的版本具有wxWidgets運行環境;

然後,需要整合所有的資源檔:開啟 命令提示字元視窗,進入目錄 H:\codeblocks\src ,運行 update.bat ,等待結束;

第二步產生了新的目錄 H:\codeblocks\src\output ,這裡就是你的發行版了。不過,還沒有配備編譯器奧。

運行一下看看效果吧!

 

如果在編譯過程中遇到什麼問題,歡迎在此留言討論。

 

文章來自LearnShare,轉載請註明。

【Code::Blocks】windows 環境下編譯 Code::Blocks(已修正)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.