当前位置: 首页 > news >正文

codeblocks安装、使用、调试教程

一:下载

官方下载地址

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

二:安装
运行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;
}

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

相关文章:

  • 交换机与路由技术-32-命名ACL
  • 互联网大厂技术岗实习/求职经验分享(实习内推+简历+面试+offer)
  • Java中的数组以及八大排序算法
  • zabbix分布式
  • [math]判断线段是否相交及夹角
  • 如何并行化普通的python代码
  • 人力资源团队怎样利用智能科技提升工作效率
  • 对角线的输出
  • Charles乱码和SSL 代理问题解决
  • SharedPreference使用
  • Javaweb安全——Shiro漏洞利用
  • java基本微信小程序的高校科研管理系统 uniapp小程序
  • C++ 20 协程(一)
  • 小米手机抓取hci log
  • 【Java深入学习】并发常见方法的注意事项
  • JavaScript-如何实现克隆(clone)函数
  • [case10]使用RSQL实现端到端的动态查询
  • angular组件开发
  • const let
  • Invalidate和postInvalidate的区别
  • JavaScript函数式编程(一)
  • LintCode 31. partitionArray 数组划分
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Protobuf3语言指南
  • rc-form之最单纯情况
  • TypeScript实现数据结构(一)栈,队列,链表
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 不上全站https的网站你们就等着被恶心死吧
  • 大快搜索数据爬虫技术实例安装教学篇
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 简单易用的leetcode开发测试工具(npm)
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 如何进阶一名有竞争力的程序员?
  • 我有几个粽子,和一个故事
  • 项目管理碎碎念系列之一:干系人管理
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • (BFS)hdoj2377-Bus Pass
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (Note)C++中的继承方式
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (九)信息融合方式简介
  • (一)UDP基本编程步骤
  • (原創) 未来三学期想要修的课 (日記)
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • *1 计算机基础和操作系统基础及几大协议
  • *Django中的Ajax 纯js的书写样式1
  • .form文件_一篇文章学会文件上传
  • .NET : 在VS2008中计算代码度量值