【筆記】Code::Blocks

Code::Blocks

1) Windows上安裝與編譯

1.1) 安裝C::B

已有MinGW的下載codeblocks-?.?-setup.exe便可,尚未的推薦直接下載codeblocks-?.?mingw-setup.exephp

1.2) 配置MinGW

添加環境變量:html

Path += %MinGW%\bin;%MinGW%\mingw32\bin;

MinGW以後編譯Code::Blocks要用。ios

At the present time, Code::Blocks only compiles successfully with the MinGW compiler (or any other gcc for that matter).c++

1.3) 編譯wxWidgets

svn: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk編程

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

編譯詳見參考2,過程會比較久。能夠直接下載預編譯好的,在這兒windows

For Windows, we also provide the pre-compiled wxWidgets, ...app

本身編譯的話,就直接上wxWidgets3.0,參考5.1。ide

1.4) 編譯Code::Blocks

svn: svn://svn.code.sf.net/p/codeblocks/code/trunksvn

假設:函數

D:\codeblocks  # Code::Blocks源碼目錄
D:\wxMSW-2.8.12  # 預編譯wxWidgets解壓目錄
  1. 打開Code::Blocks,而後"File > Open...: D:\codeblocks\src\CodeBlocks.cbp"。
  2. 在彈出"Global Variable Editor"內(可由"Settings > Global variables..."打開):
    • Current Set: default, Current Variable: wx: Built-in fields > base: D:\wxMSW-2.8.12
    • Current Set: default, Current Variable: cb_release_type: Built-in fields > base: -o2
  3. 設置MinGW編譯,"Settings > Compiler...":
    • Selected compiler: GNU GCC Compiler > Toolchain executables: [MinGW]\bin
  4. 工具欄 > Build Target: Compiler,而後Build。(Error: cannot find -lcodeblocks|-ldepslib)
  5. Build All吧,-lcodeblocks(Target sdk)往上依賴不少。
  6. 須要zip.exe,列在了tools page。下載並加到Path。(Execution of zip ... failed.)
    • zip建議直接下載zip-?.?-setup.exe安裝。若是隻是bin的話,還依賴bzip2
  7. 若是要顯示SVN修訂號,則須要svn.exe,這兒下載。不然爲0。

注意:3視狀況,456不用依步驟,7隨意。

而後:

  1. 拷貝"D:\wxMSW-2.8.12\lib\gcc_dll\wxmsw28u_gcc_cb.dll"到"D:\codeblocks\src\devel"目錄。
  2. 運行"D:\codeblocks\src\update.bat",目錄"D:\codeblocks\src\output"下就是你的發行版了。
  3. 運行"D:\codeblocks\src\output\codeblocks.exe"時,因爲單例,記得關閉開着的C::B。

能夠卸載原先安裝的C::B,用"output"下的迭代編譯自身。

1.5) 參考

  1. Retrieve source code from SVN
  2. Installing Code::Blocks from source on Windows
  3. windows 環境下編譯 Code::Blocks

2) 基本配置

Settings
  -> Editor...
    -> General settings
      -> Editor settings
        -> Font > Choose
          -> F = YaHei Consolas Hybrid  # 等寬字體
        -> TAB options
          -> TAB size in spaces = 4  # TAB爲4個空格
        -> End-of-line options
          -> End-of-line mode = AUTO  # 自動。
             # 想選UNIX換行符LF,但如今換行符都由版本控制系統根據平臺自動作轉換了。
        -> Other options
          -> Highlight line under caret  # 高亮光標所在行
      -> Other settings
        -> Encoding
          -> Use encoding when opening files = UTF-8  # 打開文件默認編碼
          -> Use this encoding: As default encoding  # 默認編碼
        -> Other options
          -> Show spaces in editor = Always  # 總顯示空格
    -> Margins and caret
      -> Right margin
        -> Right margin hint = Visible line  # 右邊界線可見
Edit
  -> File Encoding  # 選擇文件編碼

新建Console application,因爲Windows下Command Prompt不支持UTF-8,若是輸出中文會是亂碼。用的GCC編譯器的話,能夠設置-fexec-charset=GBK,即執行時字符集爲GBK。更多選項

Settings
  -> Compiler...
    -> Selected compiler = GNU GCC Compiler
      -> Compiler settings
        -> Other options: -fexec-charset=GBK

須要Rebuild後再Run。

3) 進行調試

3.1) Hello World

  1. 與"-fexec-charset=GBK"同樣的步驟,添加"-std=c++11"以使用新特性。
  2. File > New > Project... > Console application,依步驟創建個Hello World工程。
  3. main.cpp稍改複雜些,以試單步調試,以下:

main.cpp

#include <iostream>
#include <string>
#include <vector>

template<typename T>
std::ostream& operator<<(std::ostream& os, const std::vector<T>& vec)
{
    for (auto& el : vec)
    {
        os << el << ' ';
    }
    return os;
}

int main()
{
    std::vector<std::string> words = {
        "Hello", "from", "GCC", __VERSION__, "!"
    };
    std::cout << words << std::endl;
}

3.2) 進行Debug

  1. Settings > Debugger... > GDB/CDB Debugger > Default > Executable path,設Debugger程序。
  2. 在第8行"for (auto& el : vec)"打斷點,而後Debug運行便可。
  3. Debug時,Debugger > Debugging windows或工具欄,可添加Debug窗口。Layout會被記錄。

3.3) 參考

4) 經常使用快捷

Editor

功能 快捷鍵
複製當前行 Ctrl-D
刪除選中行 Ctrl-L
刪除光標所在行 Ctrl-Shift-L
與上行交換 Ctrl-T
到上一段落 Ctrl-[
到下一段落 Ctrl-]
撤銷/Undo Ctrl-Z
恢復/Redo Ctrl-Shift-Z
切換頭文件與源文件 F11
註釋 Ctrl-Shift-C
取消註釋 Ctrl-Shift-X
自動完成 Ctrl-J
切換書籤 Ctrl-B
到上個書籤 Alt-PgUp
到下個書籤 Alt-PgDown

Search

功能 快捷鍵
查找 Ctrl-F
查找下個 F3
查找上個 Shift-F3
在文件中查找 Ctrl-Shift-F
替換 Ctrl-R
在文件中替換 Ctrl-Shift-R
到指定行 Ctrl-G
到下個被改變的行 Ctrl-F3
到上個被改變的行 Ctrl-Shift-F3
到指定文件 Alt-G
到指定函數 Ctrl-Shift-G
到上個函數 Ctrl-PgUp
到下個函數 Ctrl-PgDown
到聲明處 Ctrl-Shift-.
到實現處 Ctrl-.
打開include文件 Ctrl-Alt-. # 衝突,見5.1
到匹配括號 Ctrl-Shift-B

View

功能 快捷鍵
顯示/隱藏信息板 F2
顯示/隱藏管理板 Shift-F2
上移工程 Ctrl-Shift-Up
下移工程 Ctrl-Shift-Down
激活上個項目 Alt-F5
激活下個項目 Alt-F6

Build

功能 快捷鍵
Build Ctrl-F9
編譯當前文件 Ctrl-Shift-F9
Run Ctrl-F10
Build and Run F9
Rebuild Ctrl-F11

Debug

功能 快捷鍵
切換斷點 F5
調試/繼續 F8
運行到光標處 F4
單步下行代碼 F7
單步進入子函數 Shift-F7
單步跳出子函數 Ctrl-F7
單步下條指令 Alt-F7
單步進入子指令 Shift-Alt-F7

參考

5) 插件

5.1) keybinder(Keyboard Shortcuts)

location: D:\codeblocks\src\plugins\contrib\keybinder

修改快捷的插件,但只看到了wx3.0工程版本==。於是,仍是要準備下wxWidgets3.0。

注:plugins分爲3類,contrib下是社區貢獻的很是有價值的插件,因此整合到了SVN。見參考1。

5.1.1) MinGW編譯wxWidgets3.0

  1. wxWidgets3.0 svn: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/WX_3_0_0-rc2/
  2. 假設源碼目錄爲"D:\WX_3_0_0-rc2"。則到"D:\WX_3_0_0-rc2\build\msw"目錄。

2.1 修改config.gcc,防止鏈接時內存不夠用。

CFLAGS ?= -fno-keep-inline-dllexport
CXXFLAGS ?= -fno-keep-inline-dllexport

2.2 而後,以下編譯wxWidgets3.0:

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

編譯詳看參考3,4。

5.1.2) 編譯Code::Blocks

同1.4,不過:

  1. 打開"CodeBlocks_wx30.cbp"(注意還有其餘區分),而不是"CodeBlocks.cbp"。
  2. "Global Variable Editor"時,wx base設爲"D:\WX_3_0_0-rc2",而不是"D:\wxMSW-2.8.12"。

繼而:

  1. 拷貝"D:\WX_3_0_0-rc2\lib\gcc_dll\wxmsw30u_gcc_custom.dll"到"D:\codeblocks\src\devel30"目錄。
  2. 運行"D:\codeblocks\src\update30.bat",目錄"D:\codeblocks\src\output30"下就是你的發行版了。

5.1.3) 編譯keybinder

打開"D:\codeblocks\src\plugins\contrib\keybinder\keybinder_wx30.cbp"(注意還有其餘區分),Build便可。

而後從新"update30.bat",從新打開C::B。在Settings > Editor...下多了Keyboard shortcuts,而後重定義吧。

把"Search > Open include file"改成"Ctrl-Alt-.",其與"Goto declaration"衝突。(r9741)

5.2) 參考

  1. Code::Blocks Plugins
  2. Creating a simple "Hello World" plugin
  3. Compile_wxWidgets_in_Unicode_mode
  4. Compiling wxWidgets with MinGW
  5. r9741 compile error with wx3.0 on Windows

6) 其餘參考


Linux上安裝與編譯,參考:CentOS安裝Code::Blocks

相關文章
相關標籤/搜索