本文从各个视点介绍如何运用codeblocks,包括装置与汉化,用户页面介绍,项目办理的办法,调试办法,并给予了运用codeblocks的主张。

codeblocks 装置与汉化

你能够很轻松的在官网上下载codeblocks,下载好后部署好环境就能够了,接着把这个汉化包运用上就能够了。

在windows平台上codeblocks运用或许会有中文乱码,你需求把设置->编辑器->惯例设置->编码设置utf8为默许编码,增加以下代码到设置–编辑器–大局编译器设置–其他编译器设置中:

-finput-charset=UTF-8

-fexec-charset=GBK

Code::Blocks使用帮助

Code::Blocks项目办理

用户页面

下图显现了 Code::Blocks 用户界面的规划。

Code::Blocks使用帮助

codeblocks页面如图所示,其中办理器和日志区域能够用快捷键shift+f2以及f2封闭和显现。

办理器(Management)

该窗口包括“项目”界面,鄙人文中将其称为项目视图。此视图显现特定时刻在 Code::Blocks 中翻开的一切项目。办理窗口的选项卡显现文件、资源文件等。该窗口能够经过shift+f2翻开或封闭。

编辑窗口(Editor)

在上面的示例中,一个名为main.c的源文件在编辑器中翻开,并进行了语法高亮显现。

翻开文件列表(Open files list)

在编辑器中显现了一切翻开的文件列表,在本例图中为:main.c。

代码片段(CodeSnippets)

经过菜单“视图”→“代码片段”,您能够翻开代码片段。在这里,您能够办理文本模块、文件链接和URL链接。 日志(Logs)

此窗口用于输出查找成果、编译器的日志音讯等。该窗口能够经过f2翻开或封闭。

状态栏显现目前作业的文件状态或设置状态(从左到右依次为):

  1. 显现编辑器中已翻开文件的绝对路径。
  2. 编辑器语法高亮的方式。
  3. 主机操作系统环境。
  4. 编辑器中当时光标方位(Line:显现当时光标地点行号,Col:显现当时光标地点列号,Pos:显现在光标之前有多少个字符)。
  5. 编辑器运用您地点主机操作系统的默许字符编码。此设置将以默许值显现。
  6. 当时文本刺进键盘模式(刺进或覆盖)的装备,你能够经过键盘insert切换两种模式,光标在刺进模式下显现为竖线,在覆盖模式下显现为横线。
  7. 文件的当时状态。已修正的文件将符号为“已修正”,否则该项将为空白。
  8. 文件操作的权限。只读设置的文件将在状态栏中显现为“只读”。并且在“翻开文件列表”(Open files list)窗口中,这些文件将以加锁的图标杰出显现。

Code::Blocks使用帮助

说明: 在活动编辑器中,用户能够挑选上下文菜单特点。 ,能够挑选”文件为只读”的选项。 挑选此选项将使对应文件在Code::Blocks中作为只读访问, 可是文件在文件系统上的原始读写特点不会被修正。

  1. 假如运用命令行选项 –personality= 发动 Code::Blocks,则状态栏将显现当时运用的装备文件,否则将显现默许装备文件。 Code::Blocks的设置存储在相应的装备文件.conf中。

项目办理

Code::Blocks 供给了非常灵敏和全面的项目办理。以下文本将仅讨论项目办理的一些功用。

1 项目视图

在Code::Blocks中,Project的源文件(如C/C++的源文件及其对应的头文件)和编译特点设置信息设置都保存在一个以.cbp为后缀的项目文件中。C/C++ 源代码和相应的头文件是项意图典型组件。

创立新项意图最简单办法是经过菜单栏履行命令“文件”→”新建”→“项目”并挑选一个导游,并继续。

在这之后,您能够经过办理器(Management)中的上下文菜单“增加文件”将文件增加到项目中。这个分类文件夹是虚拟的,在计算机文件系统中实际并不存在。

Code::Blocks使用帮助

Code::Blocks会根据文件扩展名区分项目文件到不同的分类中。预设的分类包括:

Sources(源代码):包括扩展名为*.c;*.cpp的源代码文件。

ASM Sources(汇编源代码):包括扩展名为*.s; .S; .ss;*.asm的源代码文件。

Headers(头文件):包括扩展名为*.h等头文件的文件。

Resources(资源):包括为wxWidgets窗口描绘布局的扩展名为*.res;*.xrc等文件。这些文件类型会显现在办理栏(Management)的“资源文件”标签下。

经过菜单栏[项目–>项目→编辑文件类型和类别],用户能够新建自界说的文件类别,来调整文件类型和分类的设置。例如,假如你希望*.ld的文件放到Linkerscript的分类里,你只 需新建类别Linkerscript,并为它指定*.ld后缀即可。

提示:你能够经过停用 [菜单栏→项目→项目树→根据文件类型进行分类]选项,则类别显现将封闭,这样一切项目中的文件都会按照计算机原方位显现。

Code::Blocks使用帮助

2 项目备注

在CodeBlocks中,咱们能够给项目增加所谓的“笔记(Notes)”。这些笔记应当包括简略的项目描绘或提示信息。经过在项目翻开时显现这些信息,能够使其他用户快速了解该项目状况。能够鼠标右键经过在“菜单栏(Management)→项目→特点”对话框中的“留意”选项卡进行设置,开启或封闭笔记显现。

Code::Blocks使用帮助

Code::Blocks使用帮助
3 项目模板

CodeBlocks供给了各种项目模板,在新建项目时能够挑选运用。不过咱们也能够自界说模板,将自己常常运用的编译器设置、优化选项、资源的装备等收录在模板中便利复用。

这些模板将被保存在如“文档与设置\用户\应用程序数据\CodeBlocks\用户模板(Documents and Settings\Application Data\codeblocks\UserTemplates)”目录下。

假如要让一切用户都能运用这些模板,需求将它们复制到CodeBlocks装置目录对应的文件夹中。重启CodeBlocks后,经过”文件”->“新建”->“项目”->“用户模板”菜单能够看到。

注:用户能够经过在“项目导游(Project Wizard)”中右键挑选模板对其进行编辑修正。

Code::Blocks使用帮助

4 从构建方针创立项目

一个项目一般会有不同的版别,最常见的是Release和Debug版别。不同的构建方针所采用的编译器选项、调试信息甚至依靠文件都或许不同。每个构建方针都能够独自保存为独立的项目文件。您能够经过”菜单栏”→“项目”->“特点”对话框中的“构建方针”选项卡,挑选方针后点击“从方针创立项目…”按钮完结此功用。

Code::Blocks使用帮助

5 编译模式

在Code::Blocks中,项目能够经过所谓的虚拟方针进行进一步结构化。一个常用的项目结构包括两个构建方针,一个包括调试信息的”调试”方针,另一个是没有此信息的”发布”方针。经过菜单”项目”->”特点”->”构建方针”,能够增加虚拟方针来组合独自的构建方针。例如,一个名为”一切”的虚拟方针能够一同生成”调试”和”发布”方针。虚拟方针显现在编译器符号栏中的“构建方针”下。

6 构建前进程和构建后进程

Code::Blocks答应在编译项目前后履行额定的操作。这些操作称为预生成进程或生成后进程。典型的生成后进程包括:

从完结的目标创立Intel Hex格局

经过objcopy操作目标

经过objdump生成转储文件

比如:
在Windows下从目标创立反汇编。经过/c参数调用cmd将输出导向文件。
cmd /c objdump -D name.elf > name.dis
归档项目也能够作为后生成进程的一个比如。为此,创立名为"归档"的生成方针,并在后生成进程中包括以下说明:
zip -j9 $(PROJECT_NAME)_$(TODAY).zip src h obj $(PROJECT_NAME).cbp
经过这个命令,当时项目及其源文件、头文件和目标将打包成zip文件。这里运用了内置变量$(PROJECT_NAME)$(TODAY),提取项目称号和当时日期。履行"归档"方针后,打包文件将存储在项目目录中。
在share/codeblocks/scripts目录下供给了一些脚本示例。能够经过菜单"设置"->"脚本设置"增加脚本并注册到菜单。例如,假如从菜单履行make_dist脚本,那么项目中的一切文件将压缩成一个<project>.tar.gz存档。

7 为构建方针增加脚本 Code::Blocks答应运用脚原本调用菜单命令,操控项意图生成。

提示: 脚本能够被包括到一个构建方针中。

8 解决方案和项目依靠

在Code::Blocks中,能够一同翻开多个项目。经过菜单“文件”->“保存作业空间”能够把它们集成到一个解决方案中,生成一个对应的“<称号>.作业空间”文件。假如下次发动Code::Blocks的时分翻开这个“<称号>.作业空间”文件,一切项目都将再次显现。

复杂的软件系统由不同的Code::Blocks项目中办理的组件模块组成。此外,在生成这类软件系统时,这些项目之间常常存在依靠联系。

例如:项目A经过库(library)的方式为其他项目供给一些基本函数。现在,假如修正这个项意图源代码,这个库有必要重建。为了在运用这些函数的项目B和完结这些函数的项目A之间坚持一致性,项目B有必要依靠于项目A。项目依靠联系的必要信息被保存在相关的作业空间中,这样每个项目能够独自创立。运用依靠联系也能够操控项目生成顺序。能够经过挑选菜单“项目”->“特点”,然后单击“项意图依靠”按钮来设置项目依靠联系。

Code::Blocks使用帮助

编辑与东西

本节描绘编辑器设置与东西。

1 默许代码

Code::Blocks使用帮助

公司的编码规范要求源文件有规范规划。Code::Blocks能够在新建C/C++源文件和头文件时主动增加预界说内容。这个预界说内容称为默许代码。此设置能够在“设置(Settings)”->“编辑器(Editor)”->“默许代码(Default Code)”中挑选。假如新建文件,那么会对变量进行宏扩展,例如经过“设置(Settings)”->“大局变量(Global variables)”菜单界说。新的文件能够经过“文件(File)”->“新建(New)”->“文件(File)”菜单新建。

2 缩写

在Code::Blocks中经过界说缩写能够节省很多输入。这能够经过挑选“设置(Settings)”->“编辑器(Editor)”,然后在缩写下界说缩写,键入Ctrl-J即可调用。

Code::Blocks使用帮助

在缩写中包括变量$(NAME)也能够完结参数化。
#ifndef $(Guard token)
#define $(Guard token)
#endif // $(Guard token)
在源代码文本中输入<称号>缩写后按Ctrl-J,会恳求变量内容并归入

3 导航与查找

在Code::Blocks中有多种快速在文件和函数之间导航的办法。设置书签是典型操作。运用快捷键Ctrl-B在源文件中设置或删去书签。运用Alt-PgUp跳转到前一个书签,Alt-PgDn跳转到下一个书签。你能够经过光标选中一个函数,右键去寻觅自界说函数的声明,与书签一同结合运用。

Code::Blocks使用帮助
假如在项目视图中挑选作业空间或其中的项目,能够在项目中查找文件。从上下文菜单挑选“查找→在文件中查找(Find file)”,输入文件名后Enter就翻开该文件。

4 查找文件

在Code::Blocks中能够很容易在头文件/源文件之间导航:

  1. 将光标定位到包括头文件的方位,经过上下文菜单“翻开#include文件(open include file)”翻开该文件
  2. 经过上下文菜单在头文件和源文件之间切换
  3. 例如在编辑器中挑选一个define,从上下文菜单挑选“查找声明(Find declaration)”翻开包括其声明的文件。
    Code::Blocks使用帮助

Code::Blocks供给多种在文件或目录中查找的办法。经过“查找(Search)”->“查找(Find)”(Ctrl-F)或“在文件中查找(Find in Files)”(Ctrl-Shift-F)翻开查找对话框。

Alt-G和Ctrl-Alt-G也是有用快捷键。运用此快捷键翻开的对话框让您挑选文件/函数,然后跳转到所选函数的完结或在编辑器中翻开挑选的文件。您能够在对话框中运用通配符如*或?等进行增量查找。

Code::Blocks使用帮助

6 查找函数

笔记:运用Ctrl-PgUp能够跳转到上一个函数,Ctrl-PgDn能够跳转到下一个函数。

在编辑器中,能够经过Ctrl-Tab翻开新的“翻开文件”对话框,在列表中切换文件。假如按下Ctrl键,能够用不同办法挑选文件:

运用左键单击挑选一个条目后,该文件将翻开。

按Tab键在列表中切换。开释Ctrl键将翻开挑选的文件。

鼠标移动到列表项上时,当时挑选高亮。开释Ctrl键将翻开挑选的文件。

鼠标指针在高亮挑选外时,能够运用鼠标滚轮在条目间切换。开释Ctrl键将翻开挑选的文件。

开发软件经常常会跨文件完结一组函数,经过alt+键盘左右键,能够阅览最近阅览的文件,选中后键入回车,你能够根据书签到达快速阅览的意图。

经过“设置(Settings)”->“惯例设置(General Settings)”->“显现行号(Show line numbers)”能够在Code::Blocks中翻开行号显现。快捷键Ctrl-G或者菜单“查找(Search)”->“跳转行(Goto line)”能够帮您跳到方针行。

留意:假如在Code::Blocks编辑器中按下Ctrl并挑选文字,鼠标右键,能够进行互联网查找操作。

7 符号视图

Code::Blocks Management办理窗口供给一个树形视图,用于经过函数或变量导航C/C++源文件的符号。能够设置视图范围为当时文件、项目或整个作业空间。

留意:在符号阅览器的“查找”输入框中输入查找词或符号称号,假如有匹配成果会显现过滤后的符号视图。(笔者电脑不支撑这个功用,所以没办法展现详细功用,笔者电脑是2008年的电脑,cpu为t9550,很难想象这一台笔记本电脑现已15岁啦都没退休,换做是人的话100岁都在作业捏。)

Code::Blocks使用帮助

8 增加外部协助文件

Code::Blocks使用帮助
Code::Blocks自带自己的协助文件。可是开发人员一般还需求很多言语、库、协议、文件格局等方面的参考协助。协助插件能够经过Code::Blocks本身访问一切需求的文档。由于插件支撑调用外部程序检查增加的文档,所以任何文档格局都能够整合到Code::Blocks协助系统中。

增加新协助文件后,“协助(Help)”菜单中将有一个新条目翻开它。

Code::Blocks支撑经过菜单“设置(Settings)”->“环境(Environment)”增加外部协助文件。

运用技巧

在接下来将会介绍codeblocks一些有用的技巧或设置

1 自界说视图

视使命需求,Code::Blocks或许需求不同装备或视图,且需求保存这些装备/视图设置。默许设置(如显现/躲藏符号栏、布局等)存储在default.conf装备文件中。发动Code::Blocks时运用–personality=ask挑选不同设置。除此大局装备外,也或许需求在会话进程中在视图和符号栏之间快速切换,如编辑文件和调试项目典型状况。Code::Blocks供给存储和挑选不同视角的机制,避免用户频繁手动翻开封闭窗口和符号栏。保存视角挑选菜单“视图(View)”->“视角(Perspectives)”->“保存当时(Save current)”并输入称号<称号>。能够在“设置(Settings)”->“编辑器(Editor)”->“键盘快捷键(Keyboard shortcuts)”->“视图(View)”->“界面外观(Perspectives)”-><称号>为此进程界说键盘快捷键。这样就能够运用热键快速切换不同视图。

Code::Blocks使用帮助

2 在项目间切换

一同翻开多个项目或文件时,需求快速在项目间切换。Code::Blocks供给以下快捷键:

Alt-F5在项目视图中激活前一个项目。

Alt-F6在项目视图中激活下一个项目。

F11在编辑器中源文件<称号>.cpp和对应的头文件<称号>.h之间切换。

3 c言语规范挑选

你能够为你的codeblocks挑选c言语规范,在主菜单设置(Settings)->编译器(Compiler)->大局编译器设置中。进入编译器标志选中std规范,或在编译器其他设置输入[-std=c**]替换c言语规范,输入[-std=c++**]替换c++规范.

请留意两边不要一同修正编译器标志,这会导致编译器标志修正不知道过错。主张撤销勾选编译器标志直接在其他编译器设置中设置。

请留意codeblocks修正了规范后需大局编译器设置要重进入编译器标志选中std规范,或在编译器其他新构建空间。能够用以下代码检查是否修正成功

Code::Blocks使用帮助
c言语代码检查

#include "stdio.h"
#include "string.h"
int main()
{
    printf("%d\n", __STDC__);
    printf("%ldL",__STDC_VERSION__);
    return 0;
}

c++代码检查

#include <stdio.h>
#include <stdlib.h>
int main()
{
    printf("%ld\n",__cplusplus);
    return 0;
}

使得修正的c或c++规范宏的数据与下表相同

姓名(Name) 宏(Macro) 规范(Standard)
C89 STDC ANSI X3.159-1989
C90 STDC ISO/IEC 9899:1990
C94 STDC_VERSION= 199409L ISO/IEC 9899-1:1994
c99 STDC_VERSION= 199901L ISO/IEC 9899:1999
c11 STDC_VERSION= 201112L ISO/IEC 9899:2011
c17 STDC_VERSION= 201710L ISO/IEC 9899:2018
C2x STDC_VERSION= 201710L
c++98 __cplusplus= 199711L ISO/IEC 14882:1998
c++11 __cplusplus= 201103L ISO/IEC 14882:2011
c++14 __cplusplus= 201402L ISO/IEC 14882:2014
c++17 __cplusplus= 201703L ISO/IEC 14882:2017
c++/cli __cplusplus_cli= 200406L ECMA-372
dsp-c ISO/IEC JTC1/SC22 WG14/N854
ec++ __embedded_cplusplus Embedded C++

Code::Blocks快捷键

编辑器快捷键

功用 快捷键
撤消最后操作 Ctrl + Z
重做最后操作 Ctrl + Shift + Z
剪切所选文本 Ctrl + X
复制所选文本 Ctrl + C
粘贴剪贴板文本 Ctrl + V
全选文本 Ctrl + A
交流头文件/源文件 F11
注释高亮代码 Ctrl + Shift + C
撤销注释高亮代码 Ctrl + Shift + X
重复当时行 Ctrl + D
主动完结/缩写 Ctrl + Space / Ctrl + J
显现调用提示 Ctrl + Shift + Space
交流当时行与上一行 Ctrl + T
增加/删去书签 Ctrl + B
跳转到上一符号 Alt + PgUp
跳转到下一符号 Alt + PgDown
折叠/翻开当时代码块 F12
折叠/翻开一切代码块 Shift + F12

其他快捷键

功用 快捷键
放大文本 Ctrl + NumPad +
缩小文本 Ctrl + NumPad –
恢复默许文本大小 Ctrl + NumPad /
在最近翻开文件间切换 Ctrl + Tab
缩进代码块 Tab
撤销缩进 Shift + Tab
删去到单词最初 Ctrl + Backspace
删去到单词结尾 Ctrl + Delete
删去到行首 Ctrl + Shift + Backspace
删去到行尾 Ctrl + Shift + Delete

文件操作快捷键

功用 快捷键
新建文件或项目 Ctrl + N
翻开文件或项目 Ctrl + O
保存当时文件 Ctrl + S
保存一切文件 Ctrl + Shift + S
封闭当时文件 Ctrl + F4 / Ctrl + W
封闭一切文件 Ctrl + Shift + F4 / Ctrl + Shift + W

查找快捷键

功用 快捷键
查找 Ctrl + F
查找下一个 F3
查找上一个 Shift + F3
在文件中查找 Ctrl + Shift + F
替换 Ctrl + R
在文件中替换 Ctrl + Shift + R

编译与调试快捷键

功用 快捷键
编译 Ctrl + F9
编译当时文件 Ctrl + Shift + F9
运转 Ctrl + F10
编译并运转 F9
重构 Ctrl + F11
调试 F8
继续调试 Ctrl + F7

Code::Blocks调试介绍

在介绍调试器前,先介绍一下东西条,东西条是菜单栏的快捷办法,你能够经过鼠标右键自界说东西条,在codeblocks的调试中,运用东西条远比快捷键便利得多。在运转程序往往切换窗口,可是你的快捷键不是大局快捷键,运转程序时分你快捷键就失效了。

我一般运用这3个东西栏进行调试:

Code::Blocks使用帮助

构建东西栏:

Code::Blocks使用帮助
请留意,在你运用构建东西栏时分,是无法运用调试功用的,由于调试器无法启用。我运用这个东西栏便是告诉自己不要一不小心按到了构建快捷键。

函数寻觅东西栏:

Code::Blocks使用帮助
运用这个东西栏我能够看见我写过哪些函数,确定调试目标等。

调试之前,请设置好正确的调试器

Code::Blocks使用帮助

调试东西栏

Code::Blocks使用帮助

下面将正式介绍codeblcosk调试部分,

断点它是使调试器有用的一个重要部分。正如它们的姓名所示,它们是你能够在你的代码中声明的点,在这些点上调试器会检测这时分数据是否满意断点中止条件,假如满意将暂停运转程序。当程序暂停时,就代表调试的开端。你能够经过在codeblcosk键入f5在光标处增加断点,也能够直接点击编辑器左面数字部分增加断点。这样就能够发现一个小红点,然后请设置激活断点的条件,鼠标移动到小红点,点击右键输入条件。假如不设置将默许为无条件,只需求运转到断点处就会暂停程序。 请留意,首次在同一行键入f5或者点击数字列表是创立断电,第二次是撤销断点。

调试/继续按钮以运转或暂停调试器,他会运转到用户界说的断点上,假如满意断点条件就中止,你会在断点处暂停,这会改写监督值,并开端调试。 当运转到用户自界说断点上暂停时分,会出现一个黄色箭头,代表此时程序正在运转这一行的代码。

Code::Blocks使用帮助

下一行 按键,运转下一条代码。假如有一个函数调用,它将履行该函数并回来成果。你不会踏入函数内部的行,你仅仅直接进行并得到到函数的回来值,除非你把断点设置到这个函数内部,你会到断点处直接暂停。这张动图下面是监督器,他会监督附近变量的值,你会发现它检测不了help_debug();函数内部的数值,由于下一行不会踏入函数内部的行;

Code::Blocks使用帮助

跟进按钮它基本功用和下一行相同,是履行下一行代码,可是它会会逐行进入函数,直到它回来,然后你会回到函数调用后的下一行。你会发现,进入函数内部后,监督会监督到这个函数内部的数值。没错,监督会跟着调试履行光标的变换而更新。(假如你用了调试,可是调试不暂停,那么数字段的小箭头就会躲藏,监督等其他调试视图也不会更新)

跟出按钮,假如你现已踏入了一个函数,你能够越过该函数的剩余履行部分,直接进入回来值。可是当这个函数内部有一个断点时分,你会在断点处暂停,这会改写监督值。

Code::Blocks使用帮助

下一条指令,一个printf(“hello world\n”);都需求点3下才会出现“hello world”的按钮,这个是比较底层和细节的,应该是合作cpu存放器用的。太细节了,这里由于我是编程新人,不太懂计算机底层的开发,所以不加以说明。

Code::Blocks使用帮助

跳转到指令,跳转到指令和下一条指令的联系类似于下一行指令的联系和跟出的联系,愈加的细节,愈加的难以说明。 中止调试器 退出调试器。

调试窗口:用来翻开各种调试窗口

感谢阅览。