文档章节

【笔记】Code::Blocks

加壹
 加壹
发布于 2014/03/17 21:53
字数 1576
阅读 1422
收藏 2

Code::Blocks

1) Windows上安装与编译

1.1) 安装C::B

已有MinGW的下载codeblocks-?.?-setup.exe即可,还没有的推荐直接下载codeblocks-?.?mingw-setup.exe

1.2) 配置MinGW

添加环境变量:

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

MinGW之后编译Code::Blocks要用。

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

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,过程会比较久。可以直接下载预编译好的,在这儿

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

自己编译的话,就直接上wxWidgets3.0,参考5.1。

1.4) 编译Code::Blocks

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

假设:

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

© 著作权归作者所有

加壹
粉丝 25
博文 21
码字总数 20538
作品 0
无锡
私信 提问
加载中

评论(1)

狂徒归来
大神 弄编译cb出问题了 大神可以指点下么?
【笔记】CentOS安装Code::Blocks

[codeblocks]: http://www.codeblocks.org/ CentOS安装[Code::Blocks][codeblocks] 1) 前提 检查GTK版本,至少2.0 # ll /usr/lib/ grep gtk # 有类似"libgtk-x11-2.0.so"否 安装wxGTK 查看 ......

加壹
2014/03/21
2.4K
1
《Oracle PL/SQL实例精讲》学习笔记2——PL/SQL概念

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hpdlzu80100/article/details/83591098 这一章学习到了以下内容: 1. PL/SQL架构(如,三层架构:数据管理层、...

预见未来to50
2018/10/31
0
0
【CentOS 7笔记22】,手动增加Swap空间#171104

hellpasswd --- dd命令是用于操作磁盘 if指定源设备/dev/zero linux内核的造零器,是一个特殊设备,里面有源源不断的“0”of指定目标设备(在这里,我们创建了一个文件,作为一个模拟的设备)...

hellopasswd
2017/11/04
30
0
Code::Blocks 安装

下面提供在Windows里安装Code::Blocks和MINGW编译器的图解指南;在Linux下很多发行版已经带了 Code::Blocks,直接安装即可使用。 Step 1: 下载 Code::Blocks 进入官方下载网址: http://www....

小编辑
2010/05/22
2.5K
1
你不得不会的MarkDown--手把手教你掌握MarkDown

关于MarkDown的介绍这里就不过多介绍了,因为很多小伙伴的博文里都已经有介绍过,而且内容都是一样的。这里直接教大家实践。 显然已经成为每个IT人的标配了。如果不会点儿,真的不好意思跟别...

bigstone2012
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
36分钟前
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部