尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Dev-C++ 下载安装配置教程:中文乱码、调试与 EGE

Dev-C++ 下载安装配置教程:中文乱码、调试与 EGE 1. 为什么入门学 C 的人第一个 IDE 往往是 Dev-C如果你在搜索引擎里敲下Dev-C大概率不是因为你已经是一位老练的 C 工程师而是你刚刚开始学编程或者你所在的课程、教材、培训班明确要求用这个工具交作业。这个现象非常普遍很多高校的 C 语言、C 课程实验指导书直接写着使用 Dev-C 5.11 编译运行老师给的示例代码也是在 Dev-C 里截图演示的。于是你就面临一个很现实的问题——devc 下载、devc 安装包到底从哪拿、装完之后怎么配置才能正常写代码、编译、调试以及那个让无数新手抓狂的devc 中文显示乱码到底怎么解决。我写这篇东西的目的很直接把 Dev-C 从拿到安装包到能写代码、能调试、能显示中文、能跑图形库这整条链路讲透不绕弯子不堆术语。它是什么一句话Dev-C 是一款 Windows 平台上的轻量级 C/C 集成开发环境自带 MinGW 编译器安装完就能直接编译运行不需要你再去单独折腾编译器环境变量。它能做什么写代码、编译、运行、断点调试、管理多文件项目对入门阶段来说完全够用。适合谁看零基础刚接触 C/C 的学生、需要快速搭环境做课程实验的人以及被环境配置折磨过、想一次性搞定的自学者。我在实际带新人的过程中发现一个规律卡住初学者的从来不是语法而是环境。语法写错了编译器会告诉你哪一行有问题但环境没配好你连一行cout都跑不出来报错信息还全是英文这种挫败感足以劝退一大半人。所以这篇内容我会按真实操作顺序来先讲清楚版本和下载这件事的坑再一步步走完安装然后是编译运行、中文乱码、调试开关、图形库配置最后把高频问题整理成速查表。我会把每一步为什么这么选讲明白而不是只丢给你一个下一步。需要提前说明的是Dev-C 本身已经很多年没有大版本更新了这一点后面选择版本的时候会重点讲。但正因为它的界面和操作逻辑十几年没变网上大量的老教程、老教材截图才能对得上这也是它至今仍被大量课程采用的原因之一。理解了这个背景你就明白为什么我不推荐你盲目追求最新版本而是要根据自己的课程要求来定。2. 下载之前必须先想清楚的几件事2.1 你在网上搜到的devc 官网大多不是真的官网先泼一盆冷水。Dev-C 的历史比较复杂最早由 Bloodshed Software 开发后来停止维护之后由 Orwell 接手更新出了 5.11 版本再后来 Embarcadero 又基于它推出了 6.x 系列。所谓唯一官方站点这个概念在这个软件上其实并不牢固很多搜索结果里排在前面、看起来很像官网的页面实际是第三方下载站捆绑各种推广软件是常见操作。所以下载这件事我的建议是优先选择能查到明确维护者、有版本说明、安装包体积正常的来源其次才是看它排在第几位。判断一个安装包干不干净有个很土但很有效的办法——看体积。Dev-C 5.11 的完整安装包通常在 40 到 50 MB 左右如果你下到的包才 5 MB 或者超过 200 MB那基本可以判定有问题太小可能是个下载器太大里面塞了别的东西。另外要警惕那种高速下载极速下载按钮特别大、真正的下载链接藏在角落里的小字那种页面这类下载下来的往往是安装器装的过程中会悄悄勾选一堆你不需要的软件。养成一个习惯安装过程中每一步都看一眼有没有被默认勾选的附加项把勾去掉。这不是危言耸听我自己就踩过这个坑装完之后浏览器主页被改了排查了半天。2.2 版本怎么选5.11、6.3 和小熊猫 C 的取舍这一步是很多人忽略但非常关键的选择。我把几个常见版本的情况列个表你对号入座。版本大致特点适合谁Dev-C 5.11 (Orwell)最经典界面老旧稳定性好教程最多课程、教材明确要求 5.11 的人Dev-C 6.3 (Embarcadero)界面稍新编译器版本较新支持 C11/14 更好想用新标准、又不习惯其他 IDE 的人小熊猫 C (Red Panda)基于较新工具链界面现代中文支持好自学者、想要更好体验的人如果你的老师、教材、实验指导书明确写了用 Dev-C 5.11那就老老实实装 5.11不要自作聪明换版本。原因很现实老师截图里的菜单位置、快捷键、甚至报错信息都基于 5.11你换了版本之后菜单位置对不上上课演示你连工具在哪都找不到白白浪费时间。如果你是纯自学、没人管你用什么那我实话说小熊猫 C 在中文支持和新标准支持上体验明显更好可以作为备选。但考虑到本文标题和绝大多数读者的场景是要装 Dev-C下面我以 5.11 和 6.3 为主线来讲两者操作大同小异差异点我会单独标出来。还有一个容易被忽略的点32 位和 64 位。Dev-C 自带的是 32 位编译器在 64 位 Windows 上照样能正常运行和编译这一点不用担心。它编译出来的是 32 位程序对学习阶段完全没影响。所以看到32-bit字样不要慌能用。3. 一步不落地走完安装流程3.1 安装向导每一步到底该怎么选拿到安装包之后双击运行。如果弹出用户账户控制提示点是。接下来是语言选择界面这里有个小细节安装向导的语言我建议选English而不是中文。为什么因为部分版本的安装程序在中文界面下会出现字体显示不全的情况而且英文界面下下一步就固定在同一个位置反而不容易点错。装完之后编辑器内部是可以单独设置中文界面的这两件事不冲突。点击 OK 之后进入欢迎页直接 Next。然后是许可协议页勾选接受Next。接着是最重要的一步——安装路径。这里我的唯一要求是路径里绝对不能有中文也不建议有空格。默认路径通常长这样C:\Program Files (x86)\Dev-Cpp。这个默认路径能用但如果你要频繁手动往 include 和 lib 目录里拷文件后面配置图形库会用到Program Files 目录因为权限问题可能会让某些操作变麻烦。所以我更推荐改成一个纯英文、无空格的短路径比如D:\DevCpp或者C:\DevCpp。为什么这么强调路径因为编译器在链接阶段会去这些目录里找头文件和库文件一旦路径里出现中文或空格而工具链又没有正确转义就会出现找不到某某文件这类让人摸不着头脑的报错。与其事后排查不如一开始就避开。路径选好之后安装程序会让你选择要安装的组件。这里通常有一个Full完整安装选项选它。完整安装会包含编译器、调试器、示例代码等别为了省那几十兆空间选最小安装后面缺东西了还得重装。继续 Next等待进度条走完安装完成后会问你要不要现在运行 Dev-C可以勾上先跑一次确认能打开。3.2 首次启动的配置别跳过这一步第一次启动 Dev-C会弹出一个配置向导这一步千万别手快全点 Next。它会问你几个关键问题。第一个是语言选择这里选English或者中文都可以但要注意一个坑界面语言和代码编码是两码事。你把界面设成中文不代表你的代码就不会乱码中文乱码问题后面单独用一整节讲。我一般建议界面保持 English理由是网上搜到的报错信息、菜单名称和老教程能够对应得上你问别人的时候说Tools 菜单下的 Compiler Options对方秒懂说中文菜单里那个叫什么来着沟通成本就上去了。第二个是主题和字体这个无所谓选默认的就行。第三个也是最重要的——它可能提示你选择编译器配置通常直接确认默认的 MinGW 配置即可也就是通常被识别为MinGW GCC或类似名称的那一项。Dev-C 自带的编译器版本一般不算新对学习用的 C 来说够用但如果你要写 C11 及以上的特性比如auto、范围 for 循环、nullptr记得后面在编译选项里开启对应的标准。启动完成后你先别急着写代码先做一个动作验证环境是否可用新建一个源文件写一个最简单的程序编译运行一遍。#include iostream using namespace std; int main() { cout hello devc endl; return 0; }按 F11 编译并运行。如果弹出的黑色窗口里显示出hello devc恭喜你的环境是通的。如果这一步就报错先别往下走去第 8 节的速查表里对照排查绝大多数新手问题都逃不出那几种。4. 从新建文件到第一次编译运行4.1 单文件和新手最容易搞混的项目Dev-C 里面有个概念特别容易让初学者懵源文件Source File和项目Project是两回事。你点文件 → 新建 → 源代码创建的是一个单独的.cpp文件你点文件 → 新建 → 项目创建的是一个包含多个文件的工程会生成.dev工程文件。什么时候用哪种如果你只是写一段几十行的小程序、做课后练习用单文件就够了简单直接按 F11 一键编译运行。但一旦你的代码超过一个文件比如头文件.h加实现文件.cpp或者你要用图形库EGE 那种需要链接库的就必须建项目否则链接阶段会出问题。这个区别不搞清楚你会在为什么单个文件能跑拆成两个文件就报错上面浪费大量时间。还有一个新手高频困惑点代码文件保存的时候后缀是什么很重要。如果你的文件存成了.c那么编译器会按 C 语言来编译你写cout这种 C 的东西就会报错存成.cpp才会按 C 编译。我见过有人照着 C 教程写代码结果文件后缀是.c然后对着满屏报错怀疑人生问题其实就差在这一个字母上。保存文件的时候还有一条硬性建议文件名和保存路径同样不要用中文。这和安装路径的道理一样编译器在处理中文路径时容易出幺蛾子。养成习惯所有代码文件放在一个纯英文路径下比如D:\code\cpp\。4.2 编译运行背后的完整链路很多人用了很久 Dev-C但不知道按下 F11 之后到底发生了什么。搞清楚这条链路你排查问题的能力会立刻上一个台阶。整个过程分四步。第一步是预处理。编译器会先处理所有以#开头的指令比如把#include iostream替换成真正的头文件内容处理宏定义。这一步出错的典型表现是找不到头文件。第二步是编译把预处理后的代码翻译成汇编再变成目标文件.o语法错误基本都在这步暴露报错信息会带行号。第三步是链接把目标文件和标准库、你引用的其他库拼起来生成可执行文件.exe。这一步出错的典型表现是undefined reference to xxx多半是函数声明了但没实现或者库没链接进来。第四步才是运行你按 F11 时Dev-C 其实是帮你把前面三步做完再启动 exe。理解这条链路的实际价值在于报错发生在哪一步决定了你该往哪个方向查。语法错误去看代码本身链接错误去看函数实现和库配置而不是一通乱改。我见过太多人把链接错误当成语法错误反复改代码逻辑越改越乱。编译设置方面有几个选项值得你花两分钟看一眼。在工具 → 编译选项 → 设置里可以勾选**编译时加入以下命令**来加参数最常用的一个是-stdc11或者c14、c17用来启用对应的 C 标准。这一步看着不起眼但它决定了你能不能顺利使用新标准里的语法。5. 中文乱码这个老毛病一次讲透5.1 乱码产生的真实原因不是软件的锅devc 中文显示乱码大概是搜索量最高的相关问题之一。它让无数新手以为是 Dev-C 这个软件有毛病实际上根源在于编码不一致。我把它讲清楚你以后遇到任何编辑器的乱码问题都能自己判断。编码说白了就是字符和数字之间的一张对照表。同样的一个汉字用 UTF-8 编码存下来是两个或三个字节的数字用 GBK 编码存下来又是另外一组数字。如果存的时候用一张表读的时候用另一张表读出来的东西自然就是乱码。Dev-C 上的乱码通常出现在两种场景一是在编辑器里输入中文运行后控制台显示乱码二是从别处复制的代码粘贴进来中文变问号。具体到 Dev-C老版本比如 5.11默认倾向于用系统的 ANSI 编码中文系统下就是 GBK保存文件而编译器输出的字符集设置、Windows 控制台的活动代码页三者之间只要不统一就会乱码。所以解决思路只有一个方向让保存编码、编译输出编码、控制台显示编码三者一致。5.2 三种解决方案与各自的取舍方案一统一用 GBK。做法是把源文件另存为 ANSI也就是 GBK让编译器和 Windows 控制台都用默认的 GBK。这是最省事的一种因为 Windows 中文版控制台默认代码页就是 936GBK。缺点是如果你的代码要交给别的环境比如在线评测系统、Linux 服务器编译GBK 可能会出问题。方案二统一用 UTF-8并让编译器按 GBK 输出。做法是把源文件用 UTF-8 保存然后在编译选项里加参数-fexec-charsetGBK -finput-charsetUTF-8。这样源码本身是 UTF-8通用性好但编译出来的程序输出给控制台时转成 GBK显示正常。这是我个人比较推荐的方案兼顾了源码通用性和显示正确性。方案三改控制台代码页。在程序开头加一句system(chcp 65001);把控制台切到 UTF-8同时源码也存成 UTF-8。可行但要注意代码页切换在某些系统上会有兼容小问题而且它改变了整个控制台会话的编码只适合简单场景。方案源文件编码编译参数适用场景GBK 统一ANSI/GBK无需额外参数纯本地课程作业最省事UTF-8 输出 GBKUTF-8-fexec-charsetGBK -finput-charsetUTF-8源码要通用本地显示要正常切控制台代码页UTF-8system(chcp 65001)临时快速解决注意切换方案之后记得把源文件重新另存一次让新编码真正生效。只改编译参数但文件编码没变问题依旧。顺便说一句devc 汉化这件事。如果你只是想让菜单显示中文在工具 → 环境选项 → 界面里通常能找到语言设置切到中文即可。但我要提醒的是汉化包来源杂有些汉化包会顺手改掉编译配置导致你后面莫名其妙编译失败。如果你对英文菜单没有障碍我个人不建议折腾汉化省得给自己挖坑。6. 调试功能怎么打开断点为什么不好使6.1 先打开生成调试信息这个总开关devc 怎么调试是另一个高频问题而绝大多数调试不好使的原因出乎意料地简单没开调试信息开关。Dev-C 默认情况下可能没有生成调试所需的符号信息你设了断点程序运行起来根本不停或者提示你调试器相关的错误。打开方式进入工具 → 编译选项切到代码生成/优化选项卡找到连接器那一栏把产生调试信息Generate debugging information设置为Yes。如果是英文界面路径是 Tools → Compiler Options → Settings → Code Generation/Optimization → Linker → Generate debugging information改为 Yes。改完点确定。这一步开了之后编译出来的 exe 才会携带调试符号调试器才认识你的变量名、函数名和行号。你可以把这一步理解成给程序装上了监控摄像头没装之前调试器看到的是一团黑盒自然什么都干不了。6.2 断点、单步、查看变量的实操流程开关打开后调试的完整操作是这样走的。第一在你想暂停的那一行代码的行号左边点一下会出现一个红色或红色小圆点标记这就是断点。程序运行到这一行时会停下来。第二按F5开始调试注意不是 F11。F11 是直接编译运行不经调试器F5 才是带着调试器跑。第三程序停在断点后你可以用几个快捷键控制F7单步进入遇到函数会跳进函数内部F8单步跳过把函数当成一步执行完CtrlF7是运行到光标处。调试时最有用的是查看变量值。你可以把鼠标悬停在变量上通常能看到它当前的值也可以在左侧的调试窗口里添加监视watch手动输入变量名持续观察。对于初学者定位逻辑错误这比到处加cout打印要高效得多。操作快捷键说明开始调试F5带调试器运行会在断点停下编译并运行F11不调试直接跑单步进入F7进入函数内部单步跳过F8不进入函数整步执行跳转到光标CtrlF7运行到光标所在行停下6.3 调试闪退和控制台一闪而过新手调试最常遇到的另一个现象是程序运行完窗口瞬间消失还没来得及看结果。这其实不是调试的问题是程序正常结束、控制台就关闭了。解决办法有两个层次。最省事的办法是在return 0之前加一句system(pause);它会提示按任意键继续把窗口留住。但要注意system(pause)在提交作业到某些在线评测系统时可能不被允许因为它依赖 Windows 命令所以正式提交前最好去掉。更规范的做法是用调试器在最后一行下断点让程序停在那里你能慢慢看。还有一个坑调试时程序卡住或提示找不到调试器。这通常是因为安装时没装调试器组件或者安装路径里有中文导致调试器路径识别失败。回去检查一下安装目录是否存在MinGW32\bin\gdb.exe这类文件如果不存在说明当时选的不是完整安装需要重新装一遍并勾选完整组件。7. 配置 EGE 图形库让控制台之外也能画图7.1 EGE 是什么为什么初学者要用它搜devc 配置 ege的人多半是想做点看得见的东西了。EGEEasy Graphics Engine是一个面向 C/C 初学者的图形库中文文档齐全接口简单画线、画圆、贴图、播放简单的音乐都能干。对于学完基础语法、想做个贪吃蛇俄罗斯方块之类课程设计的人来说它比直接上手复杂的图形框架友好太多。它的定位就是教学友好这也是为什么很多学校的 C 课设会推荐它。需要说明的是EGE 的配置方式跟普通的标准库不一样它需要你把头文件和库文件手动放进 Dev-C 的对应目录并在链接时加上库参数。这也是为什么我前面强调安装路径不要用 Program Files——往那里拷文件经常需要管理员权限。7.2 手动配置头文件、库文件和链接参数完整流程分三步。第一步把 EGE 提供的include目录下的头文件主要是graphics.h以及相关头文件复制到 Dev-C 安装目录下的MinGW32\include或对应include目录里。第二步把lib目录下的库文件如libgraphics.a、libgdi32.a等依赖库复制到MinGW32\lib目录里。第三步在编译选项里告诉链接器要链接哪些库。具体来说进入工具 → 编译选项 → 设置在页面下方有个在连接器命令行加入以下命令的输入框把下面这一串填进去-lgraphics -lgdi32 -limm32 -lmsimg32 -lole32 -loleaut32 -lwinmm -luuid如果你希望运行时不带那个黑色控制台窗口做成纯图形界面程序再加上-mwindows。但注意开发调试阶段我建议先不加-mwindows保留控制台窗口这样如果程序出错报错信息还能在控制台里看到等你程序稳定了再去掉。这个顺序很重要一上来就去掉控制台报错了你连提示都看不见。新建项目之后写一段最简单的测试代码验证配置#include graphics.h int main() { initgraph(640, 480); circle(320, 240, 100); getch(); closegraph(); return 0; }能弹出一个窗口并画出一个圆就说明配置成功了。如果报找不到 graphics.h说明头文件没拷对位置如果报undefined reference一堆错误说明库文件没放好或者链接参数没填全。这两类错误的排查方向完全不同对照第 8 节表格处理。8. 常见问题速查表与避坑经验8.1 高频报错对照表下面这张表覆盖了我带新人过程中见过的绝大多数问题遇到报错先查表比盲目重装快得多。现象最可能的原因处理办法安装后打不开或闪退安装包不完整、被杀软拦截关闭杀软重装重新下载完整包编译报找不到头文件include 路径不对检查是否拷错目录路径是否有中文undefined reference to xxx函数没实现或库没链接检查实现代码检查链接参数中文输出乱码编码不一致按第 5 节三种方案择一统一断点不停、调试没反应未生成调试信息开启 Generate debugging information控制台窗口一闪而过程序正常结束末尾加system(pause)或下断点调试提示找不到 gdb安装组件不全完整重装确认含调试器EGE 报链接错误库文件或链接参数问题核对库目录与链接命令换电脑后工程打不开路径变化或编码问题统一放到纯英文短路径下8.2 几条我踩过坑之后的私房建议先说第一条——环境装一次别反复重装。很多新手一遇到问题就卸了重装结果重装完问题还在因为问题根本不在安装本身而在配置或者代码。下次你遇到问题先按报错发生在哪一步来判断编译错误看代码链接错误看库运行错了看逻辑乱码看编码。分清这四类能省下你大量无谓的重装时间。第二条给代码建个固定的工作目录并定期备份。Dev-C 有个小毛病如果工程文件路径发生变动比如你从 U 盘里直接打开项目它可能找不到源文件。我自己的习惯是固定用一个目录比如D:\cpp_workspace\所有练习按日期或主题建子文件夹重要作业再单独拷一份到网盘。别笑我见过不止一个人的课程设计因为电脑崩了而重做。第三条关于版本更新的心态。前面说了 Dev-C 更新不频繁遇到网上有人鼓吹新版本解决一切时保持冷静。学习阶段最稳的策略是跟课程要求对齐老师用 5.11 你就用 5.11自学的选一个装好之后就别换来换去。工具是用来写代码的不是用来折腾的把精力花在语法和算法上收益更高。第四条如果你实在受不了 Dev-C 的老界面和时好时坏的中文支持又不想学 Visual Studio 那种重型工具可以试试前面提到的小熊猫 C。它本质上还是类似的开发思路但中文支持和较新 C 标准更友好迁移成本很低菜单布局也接近你现有的 Dev-C 使用习惯基本能平移过去。最后再补一个很少人提但很实用的点善用 F11 和 F5 的区别以及编译日志窗口。很多人按了编译之后只看底部有没有红色错误其实那个日志窗口是有滚动条的前面的警告信息经常被漏掉。有些问题比如变量未初始化、隐式类型转换编译器只给警告不给错误程序照样能跑但结果不对这时候翻一翻警告信息往往能直接找到病根。养成编译后扫一眼警告的习惯你会比同龄人少踩很多坑。
返回列表