【GESP】C++一级知识点之【集成开发环境】

初学者首选Orwell Dev-C++ 5.11(蓝色图标)------国内教材、竞赛、考级用得最多,体积小、零配置。内嵌 GCC 编译器(GCC 编译器的Windows 移植版),是 NOI、NOIP 等比赛的指定工具。

本文解决了调试不能通过的问题,详细介绍了如何配置编译器。

Dev-C++是一个可视化集成开发环境,可以用此软件实现C/C++程序的编辑、预处理/编译/链接、运行和调试。现在介绍Dev-C++常用的一些基本操作,每一位同学都要掌握。

官方下载镜像:(仅48M)

https://sourceforge.net/projects/orwelldevcpp/files/Setup/Dev-Cpp%205.11%20TDM-GCC%204.9.2%20Setup.exe

1、安装(直接双击即可)

Dev-C++ 的安装包不需要管理员权限( 默认装到用户目录"C:\Users\你的用户名\AppData\Local\Dev-Cpp",不写系统盘关键位置**)**就能完成 99% 的安装步骤:

  • 双击 exe → I Agree → Full → 改路径(例:D:\Dev-Cpp)→ Install → Finish。
  • 首次启动向导 :选 简体中文、Consolas 12 号字体即可。

只有在两种情况下才需要"右键→以管理员身份运行"

  • 你想把 Dev-C++ 装进 C:\Program Files这类受系统保护的目录;
  • 电脑装了 安全软件/组策略拦截普通写入。

所以: 初学者直接双击,装到默认路径,最省事。 若双击后提示 "权限不足"再改用管理员即可。

2、启动

  • 双击桌面快捷方式或从开始菜单打开Dev-C++
  • 首次启动会提示选择语言,选择"Chinese"即可

3、新建源程序

步骤: 点击菜单栏 文件 → 新建 → 源代码 (或按快捷键 Ctrl+N)。默认生成空白编辑窗口

关键提示:建议先保存文件再编码:Ctrl+S;C++源文件扩展名必须为``.cpp``(例如:``hello.cpp``)

注意:必须在英文输入环境下编辑程序。

在4.99以前的版本的Dev-C++环境下,为了查看程序运行结果,需要在main函数的return语句前加上**:****system("pause")或getchar( )**,这样程序运行到该语句时,结果显示屏幕将会停留,让大家有时间看程序的输出结果。否则结果显示屏幕将会一闪而过。在4.99之后的版本可不必加该语句,运行结束后结果显示屏幕将自动停留。

4、保存源程序到硬盘

一个好的习惯是创建了一个新程序后,在还未输入代码之前先将该程序保存到硬盘某个目录下,然后在程序的编辑过程中经常性地保存程序,以防止机器突然断电或者死机。要保存程序,只需从主菜单选择"文件"---〉"保存"就可以将文件保存到指定的硬盘目录。

此时会弹出一个对话框,在此你需要指定文件要存放的磁盘目录(例如: D:\c++ source),自定文件名称(例如:example1)以及保存类型。在点击右下角的保存按钮后,在D盘上的c++ source目录下将会出现一个名为example1.cpp的源文件。

**提示:**在输入程序的过程中记得随时对程序进行保存(菜单【文件】"->【保存】,或者组合键ctrl+s),此时会将程序重新保存到之前指定的目录下。如果想将程序保存到其他硬盘路径下,可以选择【文件】->【另存为】,可以重新指定程序的名称和目录。

5、编译

步骤: 点击菜单栏【运行】 ->【编译】(或按 F9),并观察底部"编译日志"窗口:

  • 显示 0错误 0警告 表示成功
  • 显示错误信息[Error],并将源程序相应错误行标成红色底色,则编译失败需要修改代码

"编译器"标签页中显示的错误信息是寻找错误原因的重要信息来源,每一位同学都要学会看这些错误信息,并且每一次碰到错误并且最终解决了错误时,要记录错误信息以及相应解决方法。这样以后看到类似的错误提示信息,能熟练反应出是源程序哪里有问题,从而提示程序调试效率。在排除了程序中存在的词法、语法等错误后,编译成功。此时在源文件所在目录下将会出现一个同名的.exe可执行文件(如example1.exe)。

6、运行

方法1: 直接运行

点击 【执行→ 【运行】 (或按 F10

方法2: 编译+运行

点击 【执行→【编译运行】 (或按 F11

运行效果:

弹出黑色控制台窗口显示输出结果:

7. 调试程序(Debug)

通过预处理、编译和链接的程序仅仅是该程序中没有词法和语法等错误,而无法发现程序深层次的问题(譬如算法不对导致结果不正确)。当程序运行出错时,需要找出错误原因。仔细读程序来寻找错误固然是一种方法,但是有时光靠读程序已经解决不了问题,此时需要借助于程序调试(Debug)手段。这是一种有效的排错手段,每一位同学都需要掌握。

(1)设置程序断点:点击代码行号左侧灰色区域(出现红点)

调试的基本思想是让程序运行到你认为可能有错误的代码前,然后停下来,在人的控制下逐条语句地运行,通过在运行过程中查看相关变量的值,来判断错误产生的原因。如果想让程序运行到某一行前能暂停下来,就需要将改行设置成断点。

如上图,将c=a+b语句设成断点,则程序运行完cin语句后,将会暂停。需要说明的是,你可以在程序中根据需要设置多个断点。

**取消断点:**改该代码行首再次点击即可。

(2)运行程序【需要重新配置,解决默认无法调试的情况】

设置断点后,此时程序运行进入Debug状态。要想运行程序,就不能使用主菜单【运行】--->【运行】,而是需要用主菜单【运行】--->【调试】。

根本原因 是:我们打开的是 单个 .cpp 文件 (而不是"项目"),Dev-C++ 会把它当作"临时项目",当前编译的是 Release 配置(如上红色框线标注),生成的 exe 里不包含调试符号(symbol table) ,gdb 无法把机器地址映射回源代码行号,于是 Dev-C++ 主动提示你重新用 Debug 配置 再编译一次。可是无论点击"Yes"还是"No",都无法断点调试。

需要我们手动配置解决,方案如下:

步骤1:检查是否选择了正确的编译器配置文件,确保选择了Debug配置,并注意系统是32位还是64位。这里我选择了"TDM-GCC 4.9.2 64-bit Debug":

**步骤2:**检查是否显示了项目管理子窗口。在【视图】中,确保【项目管理】已被选中。

**步骤3:**配置编译器选项。

a) 点击菜单【工具】--->【编译选项】。

b)进入到编译器选项:

c)勾选"编译时加入以下命令",并输入:-g3

d)确保"在连接器命令行加入以下命令"被勾选,并在"-static-libgcc"后加上" -g3"。注意,不包括引号,有一个空格。 输入完成之后,先不要点击"确定"。

步骤4:**配置连接器选项。**点击菜单【工具】---【编译选项】---【代码生成/优化】---【连接器】。

此处我们可以从上面的界面,直接切换标签到【代码生成/优化】,再选择标签【连接器】

确保"产生调试信息"对应为"Yes"。

点击"确定"。

(3)设置watch窗口

在调试程序时,可能要看程序运行过程中变量的值,以检测程序对变量的处理是否正确,可以在调试时通过单击左下角的工具按钮【添加查看】,弹出如下窗口:

输入需要观察的变量名,则新增的变量将会显示在最左边Explore的Debug页中。如果左边Explore中的当前页不是Debug页,则可以点击Debug标签使之成为当前页。然后单击单击左下角的工具按钮【调试】。

输入2 3,界面如下变化,可以看到左侧a,b的值已经发生了改变。程序将运行到第一个断点处,此时断点处加亮色由红色变成蓝色,表示接下去将运行蓝色底色的代码。因为程序停步在第7行,还未执行,所以c=0。

要想运行蓝色底色的代码,单击工具按钮【下一步】或者【下一条语句】或者【单步进入】都可以

其中,【下一步|Next Line(F8)】是单步执行,但不进入子函数,直接执行完函数,停在当前函数的下一行 (遇到函数调用时,整条函数当作一步跳过去。)下一条语句|Step Into(F7)】也是单步执行,并且能进入被调用的函数内部,停在被调函数内部的第一行, 可以继续单步观察函数内部变量(想看函数里怎么跑,就按它);【单步进入 / Step Into(与 F7 相同) 】,功能同上【下一条语句】;【进入语句 / Run to Cursor(F4)】一口气跑到光标所在行 再停,不管中间有没有函数调用

记忆口诀:

F8 跨栏 :跨函数,不停里面。

F7 钻洞 :钻到函数里面看细节。

F4 直达:直接跑到光标行。

相关推荐
.NET修仙日记14 天前
Visual Studio 2026 震撼发布!AI 智能编程时代正式来临
ide·微软·ai编程·开发工具·visual studio·编程革命
Sammyyyyy15 天前
macOS是开发的终极进化版吗?
开发语言·macos·开发工具
yinmaisoft16 天前
当低代码遇上AI,有趣,实在有趣
android·人工智能·低代码·开发工具·rxjava
FreakStudio19 天前
10倍效率读代码!AI神器助你秒懂任何陌生项目(保姆级教程)
开发工具·编程基础·阅读代码
GOTXX19 天前
Valgrind检测内存泄漏入门指南
linux·开发工具·内存泄漏·检测工具
点云SLAM24 天前
git使用详解和实战示例
大数据·git·elasticsearch·项目管理·开发工具·代码管理‘’
!win !1 个月前
Trae/Vs Code/Cursor命令行无法跑npm命令
开发工具·vs code·cursor·trae
何老师的GESP C++进阶课堂1 个月前
B3865 [GESP202309 二级] 小杨的 X 字矩阵(举一反三)
gesp c++·c++程序竞赛
界面开发小八哥2 个月前
「Java EE开发指南」如何用MyEclipse创建企业应用项目?(二)
java·ide·java-ee·开发工具·myeclipse