codeblocks安装、使用、调试教程

2023-10-30

一:下载

官方下载地址

在这里插入图片描述
在这里插入图片描述

二:安装
运行codeblocks-20.03mingw-setup.exe或FossHUB。界面如下:
在这里插入图片描述
点击“Next >”

在这里插入图片描述
点击“I Agree”
在这里插入图片描述
如上图所示的选择组件界面。这时一定要勾选“MinGW Compiler Suite”选项,否则无法编译代码。这里推荐大家直接使用默认的选项,安装全部组件。

点击“Next >”

在这里插入图片描述

上图所示选择安装位置界面中,大家可以根据自己的需求进行选择。如果不是第一次安装,建议使用原来的安装目录;若要修改安装位置,请根据进行配置。

点击“Install”,安装即可。
在这里插入图片描述
安装完毕。

三:新建项目
打开CodeBlocks,我们可以看到如下界面。

在这里插入图片描述

我们先创建一个C++项目,选择Create a new project
然后选择Console Application(控制台应用程序)
在这里插入图片描述

语法选择C++,之后就可以看到如下界面。在这里你可以确定你的项目名称,以及确定你项目的保存路径(要用调试模式的话就全英文路径)。在Project title输入后,Project filename会自动补全。

在这里插入图片描述

以上步骤完成后,看到一个以下新界面。

在这里插入图片描述

四:界面介绍
常用的功能如下:
左边为项目文件区,该地方存储了你打开的项目,可以在这里方便地浏览你的项目结构。
中间为代码编辑区,在此处编写代码。
顶部,从左到右三个分别被圈起来的工具栏为:文件操作区、编译运行区、Debug工具区

在这里插入图片描述

如果部分界面不一致的话可以点开视图(view),勾选对应窗口
在这里插入图片描述

写一个HelloWorld
刚刚介绍了界面,发现中间一大片都是灰色的。
因为还没有选中你要编辑的文件,所以代码编辑区不会显示任何东西。
可以在左边的项目文件区,打开Source文件夹后,可以看到一个main.cpp文件,双击。 出现代码编辑框。

在这里插入图片描述
然后可以在代码编辑区看到这个文件所包含的代码,这里CodeBlocks提前为我们写好了HelloWorld,我们只需直接运行即可。
运行的话就涉及到了编译运行区中的内容,我们来讲讲编译运行区中按钮的对应功能。

五:编译运行
从左到右,按钮名称分别为Build、Run、Build&Run、ReBuild(重新编译生成)、Abort(中止,劳资不干了)
我们要运行一个项目,应该要按Build&Run,其快捷键为F9

1.编译:依赖于编译器,英文是compile,vc中这一过程是将源码转化成目标文件,如.obj文件,rc文件等。
2.生成:指的是链接过程,英文是build.依赖于链接器。vc中在这一阶段将所有的目标文件和所有需要用到的组建组合成一个整体->exe。
3.调试:让程序在系统中运行之前的查错和改错;让程序在调试器中运行,用这种手段对程序进行分析,找出并修正潜在的问题;
4.运行:就是让程序在系统中运行。就像以命令方式双击下面的程序图标
在这里插入图片描述

so,cb中build ==编译+生成。run=运行。
在这里插入图片描述

六:代码美化
初学者很多人打代码不遵循格式,在codeblocks中有一键格式化代码功能,增加代码可读性。
在这里插入图片描述
将代码选中右键,点击 Format use AStyle 即可。

在这里插入图片描述

最后效果
在这里插入图片描述

七:调试(debug)

CodeBlocks是一个集成开发环境(IDE),其中最重要的开发工具,如,

编辑器:编写修改源码;
在这里插入图片描述

编译器:将源码编译成目标语言和可执行程序;
在这里插入图片描述

调试器:跟踪程序执行过程,调试问题代码;
在这里插入图片描述
  大致上,调试器是IDE中不可或缺的工具。
  调试器在跟踪代码执行过程,进行bug定位有着非常便利的作用。
  虽然有说法不能过分依赖调试器,但一般情况下,尤其是程序逻辑复杂,使用调试器可以极大地提高程序的优化和维护效率。

首先,CodeBlocks调试器需要一个完整的项目才可以启动,单独的文件无法使用调试器。使用调试器,创建的项目最好在英文路径下,路径不能包含中文字符。
CodeBlocks启动时或启动后创建项目
在这里插入图片描述
控制台程序选择

在这里插入图片描述

填写项目名和路径
在这里插入图片描述
选择编译器,默认即可

在这里插入图片描述
项目创建完成后如下,可以在自动创建的main.cpp中编写程序,或创建新文件
在这里插入图片描述

在这里插入图片描述

启动调试器, 一般,调试器的按钮可以在工具栏找到
在这里插入图片描述
如果没有,可以从view菜单项中调出
在这里插入图片描述
设置断点。使用调试器时需要让程序在需要的位置中断,在启动调试器前设置断点如下,鼠标点击编辑器的左边即可设置断点,
在这里插入图片描述

启动调试器,调试器需要以Debug模式启动,点击按钮debug:

在这里插入图片描述
启动后,程序执行到断点时,中断(暂停等待下一步指令)

在这里插入图片描述

如果在执行过程中遇到输入语句,则需要输入完成后才可以继续执行
在这里插入图片描述
在这里插入图片描述
在工具栏中打开调试窗口,主要打开Watches

在这里插入图片描述
Watches中显示的是当前变量的值,可以展开数组,

在这里插入图片描述
除了自动显示的值,也可以手动添加需要观察的变量,如数组内的某个值,

在这里插入图片描述

点击 Next line 执行下一个语句,右边的Step into为执行内部语句,最右侧的红色按钮Stop debugger为结束调试;当执行到函数调用时,可以使用next line直接执行函数,或step into跳转到函数内部执行语句,希望停止调试则点击stop debugger,
以上为调试器的基本使用方法,调试的目的主要是跟踪变量值,观察程序是否按预期的情况在执行,如果遇到变量值与预期不符,则问题就出现在之前的语句。

在调试之前,需要考虑可能有问题的代码段,在此代码段之后设置断点。

在这里插入图片描述

完,99.9%的初学者问题都可以通过谷歌百度解决。只要知道出问题的模块及问题的描述是啥。

参考:https://www.cnblogs.com/esCharacter/p/7927696.html

int main() {
    int a=2,b=3;
    a=(a=++b,b++,a*=2);
    printf("%d %d\n",a,b);
    a=2,b=3;
    a=(a-2&&b--)?++a:--b;
    printf("%d %d\n",a,b);
    return 0;
}

位运算的奇淫技巧,非常有趣

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

codeblocks安装、使用、调试教程 的相关文章

  • 使用Physics.Raycast 和Physics2D.Raycast 检测对象上的点击

    我的场景中有一个空的游戏对象 带有 2D 组件盒碰撞器 我将脚本附加到该游戏对象 void OnMouseDown Debug Log clic 但是当我点击我的游戏对象时 没有任何效果 你有什么想法 如何检测我的盒子碰撞器上的点击 使用光
  • C++ 中本地类中的静态成员变量?

    我知道我们不能宣布static本地类中的成员变量 但其原因尚不清楚 那么请问有人可以解释一下吗 另外 为什么我们不能访问非static函数内部定义的变量 内部已经定义了局部类 直接在局部类成员函数中 在下面给出的代码中 int main i
  • Windows Defender 检测 Python EXE 为木马

    我制作了一个 Python 脚本 将 Windows 目录以 zip 形式邮寄给我 我使用 sched 模块添加了一个调度程序 每小时重复一次 我试图制作一个简单的同步应用程序供个人使用 在 Windows 启动时启动 我使用将其转换为 e
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • 私有模板函数

    我有一堂课 C h class C private template
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • phoenix 框架 - 新套接字处的参数无效 - windows

    我无法运行新的 Phoenix 应用程序 这是我收到的错误 我不确定原因是什么 我尝试更改端口 但这并没有改变行为 另外 我似乎能够正确运行节点 Compiled web views error view ex Compiled web c
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个

随机推荐

  • 开发文档怎么写

    项目开发过程中为了增加程序的可读性和程序的健壮性 方便后期程序的调试和维护 所以需要在开发过程中统一技术规范 一般会在项目初期确定好相关文档作为这一统一的规范 不同公司会对文档做不同要求 划不同的分类 但一般来说 或者拿自己的经验说 大致可
  • -128----127缓存,在栈中获取

    span style font size 13px package test span br style font size 13px br style font size 13px br style font size 13px span
  • nginx负载均衡的5种策略

    nginx负载均衡的5种策略 要理解负载均衡 必须先搞清楚正向代理和反向代理 负载均衡的几种常用方式 1 轮询 默认 每个请求按时间顺序逐一分配到不同的后端服务器 如果后端服务器down掉 能自动剔除 upstream backserver
  • 如何根据excel文档中的内容同步更新数据库中的数据

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 根据excel中的内容同步更新数据库中的数据 需求概述 一 解决思路 二 具体解决方案 1 使用navicat将excel导入到mysql数据库中 2 写SQL语句做更新操作
  • python中rfind函数作用_python中的rfind函数如何使用

    python中rfind函数的用法 rfind 函数用于返回字符串最后一次出现的位置 从右向左查询 如果没有匹配项则返回 1 具体使用方法如 print str rfind substr 0 10 函数描述 推荐教程 Python入门教程
  • Ubuntu系统无法联网问题

    在网上看到许多解决方案是修改网络配置文件 但是ubuntu系统的目录结构中甚至都没有对应文件 因此找到以下解决方案 能够顺利联网并进行sudo install 亲测有效解决方案 1 在虚拟机设置中将网络适配器修改为NAT模式 2 找到net
  • please check whether the configs are released in Apollo!

    项目启动一直报错 其他同事 其他模块都没有这个错误 关键信息如下 Cause status code 404 Could not find config for namespace appId m ln contractmanage clu
  • Java程序员必须要了解的七个开源协议介绍

    1 Mozilla Public License MPL License 允许免费重发布 免费修改 但要求修改后的代码版权归软件的发起者 这种授权维护了商业软件的利益 它要求基于这种软件得修改无偿贡献版权给该软件 这样 围绕该软件得所有代码
  • 【C++】模板定义位置引发未定义标识符 “E“

    代码如下 include
  • 为什么怕写代码(自己的亲身经历)

    下班了 坐在工位不知不觉就又想起了刚开始接触java编程的日子 其实我觉得这个毛病也不在少数人 因为在我上学的时候班里面分组做项目 基本都是什么情况呢 一人做好 全部就可以交任务了 最后导致了如果代码某个地方出错了 全班90 的都出错了 归
  • pytorch下载与安装(离线包版本)

    笔者因为实验需要 不同的模型需要不同版本版本的pytorch 于是安装pytorch就总是出现一个问题 那就是断 比如需要安装torch1 4版本 使用Anaconda Prompt尝试了几次 pip install torch 1 4 0
  • python中eoferror是啥错误,python怎么看错误类型是什么

    以下是python的错误类型的总结 希望能帮助到有需要的小伙伴 Python全部的错误类型 错误类型 说明 ZeroDivisionError 除 或取模 零 所有数据类型 ValueError 传入无效的参数 AssertionError
  • 【精华】详解Qt中的内存管理机制

    前言 内存管理 是对软件中内存资源的分配与释放进行有效管理的方法和理论 众所周知 内存管理是软件开发的一个重要的内容 软件规模越大 内存管理可能出现的问题越多 如果像C语言一样手动地管理内存 一会给开发人员带来巨大的负担 二是手动管理内存的
  • 人生百味-7:一个人干活,一群人催进度,谁之过?

    如果你曾经是程序员 我相信你会深有体会 如果你曾经是项目管理 我相信你会有感受 旁观的说 那是专业活 只有他能做得来 干活的说 对不起大家 还还需要一段时间查
  • 论文阅读-Attention Bottlenecks for Multimodal Fusion(多模态特征融合)

    一 论文信息 论文题目 Attention Bottlenecks for Multimodal Fusion paperwithcode https paperswithcode com paper attention bottlenec
  • 分组密码算法与DES算法

    目录 1 分组密码的含义 1 1 分组密码介绍 1 2 分组密码的含义 1 3 分组密码的要求 2 分组密码的设计思想 2 1 分组密码的设计思想 3 分组密码的基本特点 3 1 分组密码的基本特点 3 2 分组密码的迭代结构 3 3 子密
  • 网关ping不通

    一 ping 网关 ping 10 0 0 254 ping sendto Host is down ping sendto Host is down Request timeout for icmp seq 0 ping sendto H
  • windows批处理:路径以\结尾 + unix换行 + rem + %~dp0时会导致报错

    windows对unix和windows换行符都支持的 但是遇到一种情况对unix不支持 之前遇到过window10执行没问题 但到了win7却有问题 代码如下 set project dir name Lua515 rem dp0 aaa
  • 轻松穿戴 IMU嵌入宽松衣服里做动作捕捉

    在日常生活中 保持正确姿势能够有效促进血液循环并降低慢性疾病的患病风险 在康复环境中 姿势监测可以帮助医护人员评估病情和治疗手段的效果 从而改善患者的身体状况 在以往的研究中 往往要求IMU牢固固定在穿戴者的特定身体部位 对穿戴要求较高 操
  • codeblocks安装、使用、调试教程

    一 下载 官方下载地址 二 安装 运行codeblocks 20 03mingw setup exe或FossHUB 界面如下 点击 Next gt 点击 I Agree 如上图所示的选择组件界面 这时一定要勾选 MinGW Compile