【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 直达:直接跑到光标行。