Dev-C++ 安装配置全攻略:从环境搭建到 C++20 开发实践

发布时间:2026/9/26 1:27:57
Dev-C++ 安装配置全攻略:从环境搭建到 C++20 开发实践 1. 为什么还要聊 Dev-C 这个“老古董”第一次接触 C/C 的人大概率会在搜索引擎里敲下“C 语言编译器怎么装”这几个字。然后就会撞见一堆名字Visual Studio、VS Code、CLion、Code::Blocks还有今天要说的 Dev-C。很多人一看 Dev-C 的界面截图就皱眉头——这玩意儿看着像上个时代的产物为什么还有人在用答案其实很朴素它小、它快、它开箱即用。一个不到 50MB 的安装包双击、下一步、装完新建一个.c文件按一下 F11黑框框就弹出来告诉你Hello World跑通了。对于刚学 C 语言的大一新生、准备计算机二级考试的人、或者只想临时验证一段算法代码的老手来说这套流程的摩擦系数几乎为零。Visual Studio 装完动辄十几个 GBVS Code 还要自己配编译器、配tasks.json、配launch.json光是环境配置就能劝退一半的初学者。Embarcadero 接手后的 Dev-C 版本在保留经典界面的同时把底层编译器换成了 TDM-GCC 的较新版本支持到 C17 甚至部分 C20 特性修掉了一堆老版本的 bug。GitHub 上embarcadero/dev-cpp这个仓库持续在发 release说明它并没有死只是低调。这篇文章面向三类人刚入门 C/C 的学生、需要快速搭建轻量开发环境的自学者、想给老机器或者虚拟机装一个能跑 C 的 IDE 的人。我会把安装、配置、第一个程序、常见报错、以及那些“文档里不会写但你会遇到”的坑全部讲清楚。你照着做半小时之内就能拥有一个能写代码、能编译、能调试的完整环境。2. 安装之前先把这几件事想明白2.1 版本选择Embarcadero 版、小熊猫版、还是老 Bloodshed 版Dev-C 的历史比较复杂市面上流传的版本主要有三个分支选错了会直接影响你后面能不能用上新特性。版本分支维护状态编译器版本推荐场景Bloodshed Dev-C 5.11已停止维护2005年GCC 3.4.2不推荐太老Embarcadero Dev-C 6.x活跃维护TDM-GCC 9.2 / 10.3首选官方正统小熊猫 Dev-C国内开发者维护较新 GCC中文界面友好适合纯新手我个人的建议是优先用 Embarcadero 官方版。原因有三点。第一它的 release 页面更新记录清晰你能知道每个版本修了什么。第二它默认集成的 TDM-GCC 版本足够新auto、lambda、std::thread这些都能正常用。第三遇到问题时网上能找到的英文资料基本都对应这个分支。小熊猫版的好处是界面汉化彻底菜单里不会突然蹦出英文让你懵。但它的更新节奏依赖个人维护者长期来看不如官方版稳定。如果你英文菜单看着头疼可以先用小熊猫版过渡熟悉了再换官方版。注意不要从各种“软件下载站”下 Dev-C。那些站点的安装包经常被捆绑广告插件甚至夹带修改过的编译器。只从 GitHub 的 release 页面或者官方渠道获取。2.2 安装包下载认准 release 页面打开https://github.com/embarcadero/dev-cpp/releases你会看到一列版本号。选最新的稳定版不是标着 pre-release 的那个下载文件名类似Embarcadero_Dev-Cpp_6.3_TDM-GCC_9.2_Setup.exe的安装程序。这里有个细节值得说文件名里包含了编译器版本信息。TDM-GCC_9.2表示这个安装包自带 9.2 版的 TDM-GCC 编译器。如果你下载的是不带编译器的“No Compiler”版本装完之后还得自己单独装 MinGW然后手动配置编译器路径对新手来说多了一层麻烦。所以一定要下带编译器的完整版。下载速度如果慢可以试试在 release 页面找.7z或者.zip的便携版体积更小解压就能用不用走安装流程。便携版适合放在 U 盘里随身带在机房或者别人电脑上也能快速开工。2.3 安装路径千万别选带中文和空格的目录这是我最想强调的一条。Dev-C 底层调用的是 GCC 工具链而 GCC 对路径中的中文、空格、特殊字符处理得并不好。如果你把 Dev-C 装到C:\Program Files\Dev-C或者D:\我的软件\Dev-C后面编译时可能会遇到莫名其妙的报错比如找不到头文件、链接失败、No such file or directory。正确的做法是装到一个纯英文、无空格的短路径下比如C:\Dev-Cpp D:\DevCpp安装程序默认会建议C:\Program Files (x86)\Dev-Cpp你手动改成C:\Dev-Cpp就行。这个习惯不仅对 Dev-C 有用后面你装 MinGW、装 Python、装 Node.js都应该遵循“纯英文无空格路径”这个原则。我见过太多人因为路径里有中文折腾一下午都跑不通第一个程序。3. 手把手走完安装流程3.1 安装向导每一步该选什么双击安装程序后会依次出现几个界面。第一个是语言选择选English或者Chinese都行这个只影响安装向导本身的语言不影响装好后的 IDE 界面语言。接下来是许可协议勾选接受点 Next。然后是组件选择界面这里默认全选就行包括Dev-C IDE、TDM-GCC Compiler、MinGW相关工具。如果你磁盘空间紧张可以取消勾选Associate with C/C files文件关联但建议保留这样双击.c文件就能直接用 Dev-C 打开。安装路径界面就是前面说的重点改成C:\Dev-Cpp。然后点 Install等进度条走完。整个过程大概一两分钟取决于你的硬盘速度。装完之后会问你要不要立即运行 Dev-C先别急着运行把“Run Dev-C”的勾去掉点 Finish。为什么因为第一次启动时它会让你配置一些东西我们先把配置思路理清楚再启动避免手忙脚乱。3.2 首次启动的配置向导第一次打开 Dev-C它会弹出一个“首次配置”的对话框问你选择界面语言和主题。语言选Chinese或English看你习惯主题选默认的就行。然后它会检测编译器。正常情况下它会自动找到安装目录下的MinGW64\bin\gcc.exe或者TDM-GCC-64\bin\gcc.exe。如果它显示“未找到编译器”说明安装时组件没选全或者路径有问题。这时候你需要手动指定点Tools菜单 →Compiler Options→ 在Compiler标签页里把编译器路径指向C:\Dev-Cpp\MinGW64\bin具体路径看你安装时的实际结构。配置完成后建议先做一个“冒烟测试”——新建一个源文件写三行代码编译运行。如果能跑通说明环境没问题。跑不通的话后面第四节会讲排查方法。3.3 验证安装是否成功新建文件File→New→Source File或者直接按CtrlN。然后输入这段代码#include stdio.h int main() { printf(Dev-C 环境测试通过\n); return 0; }按F11编译并运行。如果弹出一个黑色控制台窗口显示“Dev-C 环境测试通过”恭喜你环境搭好了。如果报错看下面的错误信息是什么。最常见的两种一种是gcc.exe not found说明编译器路径没配好另一种是Permission denied说明你的安装目录没有写入权限需要把 Dev-C 装到用户目录下或者以管理员身份运行。提示Dev-C 默认的编译快捷键是 F9仅编译和 F11编译并运行。F10 是仅运行不编译。记住这三个快捷键能省很多鼠标点击。4. 把 Dev-C 调教成顺手的开发工具4.1 编译器选项让代码符合现代 C 标准Dev-C 默认用的 C 标准可能比较老比如 C98 或 C11。如果你想用 C17 的std::optional、std::filesystem或者 C20 的concept需要手动改编译选项。操作路径Tools→Compiler Options→Settings标签页 →Code Generation→Language standard。在这里你可以选ISO C17或ISO C20。选完之后点 OK 保存。但这里有个坑TDM-GCC 9.2 对 C20 的支持是部分的concept、ranges这些可能编译不过。如果你确实需要完整的 C20 支持得换更新的 GCC 版本比如 GCC 13。换编译器的方法后面会讲。另外建议在Compiler Options的General标签页里勾选Add the following commands when calling the compiler然后填入-Wall -Wextra -stdc17-Wall和-Wextra会打开大部分警告信息帮你提前发现潜在 bug。比如你写了一个int a;但从来没赋值就拿来用编译器会警告你。很多初学者忽略警告结果程序运行时行为诡异查半天查不出来。养成看警告的习惯能省大量调试时间。4.2 代码模板每次新建文件自动带上框架每次新建源文件都要手写#include stdio.h和int main()很烦。Dev-C 支持自定义模板让你新建文件时自动填充这些内容。操作路径Tools→Editor Options→Code Completion→New File Template。在这里你可以编辑默认的模板内容。我一般会设成#include stdio.h #include stdlib.h int main(int argc, char *argv[]) { // 你的代码写在这里 return 0; }如果你主要写 C就换成#include iostream和using namespace std;。这个模板是全局生效的以后每次CtrlN新建文件都会自动带上。4.3 字体和配色保护眼睛提升效率Dev-C 默认的字体是 Courier New字号偏小长时间看代码容易累。建议改成Consolas或者JetBrains Mono字号调到 12 或 14。操作路径Tools→Editor Options→Fonts。配色方面默认的白底黑字在晚上写代码时刺眼。可以切到深色主题Tools→Editor Options→Color→ 在Color SpeedSetting下拉框里选Twilight或者Obsidian。这两个主题的对比度比较舒服关键字、字符串、注释的颜色区分明显。如果你对配色有更高要求可以手动调整每种语法元素的颜色。比如把注释改成暗绿色把关键字改成亮蓝色。这个看个人喜好没有标准答案。4.4 调试功能断点、单步、查看变量Dev-C 自带 GDB 调试器虽然界面简陋但基本功能都有。要调试程序先在代码行号旁边点一下会出现一个红色圆点这就是断点。然后按F5Debug启动调试程序会在断点处暂停。暂停后你可以用F7Step Into单步进入函数内部或者F8Step Over单步跳过函数调用。在底部的Debug窗口里能看到当前所有变量的值。如果你想监视某个特定变量可以在Watch窗口里手动添加变量名。这里有个经验Dev-C 的调试器对 STL 容器比如std::vector、std::string的支持不太好查看这些变量的值时可能显示一堆内部结构看不懂。这时候可以在代码里临时加printf或者cout来打印中间结果比调试器更直接。调试器适合查逻辑错误打印适合查数据错误两者结合用。5. 第一个完整项目从建工程到编译运行5.1 为什么建议用“工程”而不是单文件写一个几十行的练习程序单文件就够了。但一旦代码超过两三百行或者需要多个源文件、多个头文件就必须用“工程”Project来管理。Dev-C 的工程文件后缀是.dev它记录了哪些源文件参与编译、链接选项是什么、输出文件名是什么。新建工程File→New→Project。在弹出的对话框里选Console Application语言选C或C给工程起个名字比如my_first_project然后选保存路径。路径同样要纯英文无空格。工程建好后Dev-C 会自动生成一个main.c或main.cpp里面已经写好了Hello World的框架。你可以直接在这个基础上改也可以自己新建文件添加到工程里。5.2 多文件编译头文件与源文件的组织假设我们要写一个简单的计算器把加法、减法、乘法、除法的函数拆到单独的源文件里。目录结构大概是这样my_calculator/ ├── main.c ├── calc.c ├── calc.h └── my_calculator.devcalc.h里放函数声明#ifndef CALC_H #define CALC_H int add(int a, int b); int sub(int a, int b); int mul(int a, int b); int divide(int a, int b); #endifcalc.c里放函数实现#include calc.h int add(int a, int b) { return a b; } int sub(int a, int b) { return a - b; } int mul(int a, int b) { return a * b; } int divide(int a, int b) { return b ! 0 ? a / b : 0; }main.c里调用这些函数#include stdio.h #include calc.h int main() { int x 10, y 5; printf(%d %d %d\n, x, y, add(x, y)); printf(%d - %d %d\n, x, y, sub(x, y)); printf(%d * %d %d\n, x, y, mul(x, y)); printf(%d / %d %d\n, x, y, divide(x, y)); return 0; }在 Dev-C 里你需要把calc.c添加到工程中右键点击工程名 →Add→ 选择calc.c。然后按F11编译运行。Dev-C 会自动编译所有.c文件然后链接成一个可执行文件。注意头文件不需要手动添加到工程里编译器会根据#include指令自动找到它。但头文件必须和源文件在同一个目录下或者在编译器能搜索到的包含路径里。5.3 编译参数详解-o、-c、-g 都是干什么的虽然 Dev-C 把编译命令封装成了按钮但了解底层发生了什么对你排查问题很有帮助。Dev-C 实际执行的编译命令大概是这样的gcc -c main.c -o main.o -g -Wall gcc -c calc.c -o calc.o -g -Wall gcc main.o calc.o -o my_calculator.exe-c表示只编译不链接生成目标文件.o。-o指定输出文件名。-g生成调试信息没有这个选项就没法用 GDB 调试。最后一步把所有.o文件链接成.exe。如果你想看 Dev-C 实际执行了哪些命令可以在Tools→Compiler Options→Settings→General里勾选Show commands when compiling。这样每次编译时底部的Compile Log窗口会显示完整的命令行。遇到链接错误时看这个日志能快速定位是哪个文件出了问题。6. 那些年我们踩过的坑常见报错与排查6.1 “source file not compiled” 到底是什么意思这个报错在热搜词里出现了说明很多人遇到过。它的完整提示通常是[Error] source file not compiled出现这个错误99% 的情况是你直接按了 F10运行但没有先按 F9编译。Dev-C 运行的是上一次编译生成的.exe文件如果你改了代码但没重新编译它运行的还是旧版本。更糟的是如果从来没编译过就根本没有.exe可运行于是报这个错。解决方法很简单按F11编译并运行而不是F10。或者先F9再F10。我建议养成习惯永远用F11一步到位。还有一种情况你的代码有语法错误编译失败了但你没注意看编译日志直接按了运行。这时候也会报source file not compiled。所以看到这个错误先往上翻编译日志看看有没有红色的Error行。6.2 中文乱码控制台输出变成问号在 Dev-C 里写printf(你好\n)运行后控制台显示一堆乱码或者问号。这是编码问题。Dev-C 默认保存文件的编码可能是 ANSIGBK而 Windows 控制台的默认代码页是 936GBK理论上应该匹配。但如果你的源文件保存成了 UTF-8控制台按 GBK 解码就会乱码。解决方法有两种。第一种把源文件保存为 ANSI 编码。File→Save As→ 在编码下拉框里选ANSI。第二种在main函数开头加一行system(chcp 65001);把控制台代码页切到 UTF-8。但这种方法在部分 Windows 版本上会导致控制台字体变化不一定好看。我个人的做法是源文件统一用 UTF-8 保存然后在程序开头加SetConsoleOutputCP(65001);需要#include windows.h。这样既能保证源码跨平台兼容又能让控制台正确显示中文。6.3 链接错误undefined reference to xxx这个错误的意思是编译器找到了函数声明但链接器找不到函数实现。常见原因有三个。第一你声明了一个函数但忘了写实现。比如在.h里写了int add(int, int);但在.c里没写add的函数体。第二你写了实现但那个.c文件没有添加到工程里。Dev-C 只编译工程中包含的文件如果你把calc.c放在目录里但没Add to Project链接时就会找不到add的实现。第三你用了某个库的函数但没有链接对应的库。比如用了pthread相关函数需要在编译选项里加-lpthread。在 Dev-C 里Tools→Compiler Options→General→Add the following commands when calling the linker里填入-lpthread。6.4 编译器路径失效换了电脑或者移动了目录如果你把 Dev-C 装在 U 盘里换一台电脑后打开可能会提示找不到编译器。这是因为 Dev-C 的配置文件里记录的是绝对路径U 盘盘符变了路径就失效了。解决方法Tools→Compiler Options→Directories→ 检查Bin、Include、Lib这几个路径是否指向正确的位置。如果不对手动改成当前的实际路径。便携版的好处是你可以把整个 Dev-C 目录复制到新电脑上然后重新指定一次路径就行不用重新安装。7. 进阶玩法换编译器、配外部工具、上 C207.1 把 TDM-GCC 换成更新的 GCC 版本TDM-GCC 9.2 虽然够用但如果你要用 C20 的std::format、std::span或者想体验 GCC 13 的更好错误提示可以手动换编译器。步骤先去 MinGW-w64 的 release 页面下载最新版的 GCC解压到一个纯英文路径比如C:\mingw64。然后在 Dev-C 里Tools→Compiler Options→Directories→Bin里填入C:\mingw64\binInclude填C:\mingw64\includeLib填C:\mingw64\lib。保存后新建一个测试文件写一段 C20 的代码看看能不能编译通过。注意换编译器后之前工程里的一些编译选项可能需要调整。比如 TDM-GCC 默认链接的库和 MinGW-w64 可能略有不同。如果遇到链接错误检查一下是否需要额外加-lstdc或者-static。7.2 配置外部工具一键格式化代码Dev-C 本身没有代码格式化功能但你可以把clang-format配置成外部工具一键美化代码。先下载clang-format.exe放到C:\Dev-Cpp目录下。然后在 Dev-C 里Tools→Configure Tools→Add。名称填Format Code程序填C:\Dev-Cpp\clang-format.exe参数填-i -styleGoogle $FilePath$。保存后在Tools菜单里就能看到Format Code选项点一下就能把当前文件按 Google 风格格式化。这个功能在团队协作时特别有用能保证所有人的代码风格一致。个人开发时也能让代码看起来更整洁。7.3 用 Dev-C 写 C20 代码的注意事项前面提到 TDM-GCC 9.2 对 C20 支持不完整。如果你确实需要用 C20 特性除了换编译器还要在编译选项里显式指定标准-stdc20然后在代码里包含对应的头文件。比如用std::format需要#include format用std::span需要#include span。如果编译时报fatal error: format: No such file or directory说明你的编译器版本还不够新需要升级到 GCC 13 或更高。另外C20 的concept和requires在 TDM-GCC 9.2 上基本不可用别浪费时间尝试。换 GCC 13 之后这些特性才能正常工作。8. 一些零散但有用的经验关于快捷键除了前面说的 F9、F10、F11还有几个值得记住CtrlS保存CtrlZ撤销CtrlF查找CtrlH替换Ctrl/注释/取消注释当前行。这些和大多数编辑器一致不用额外记。关于工程备份Dev-C 不会自动保存。如果你写了一大段代码没保存就崩溃了那就真没了。建议开启自动保存Tools→Editor Options→General→ 勾选Auto Save间隔设成 5 分钟。虽然不能完全避免丢失但至少能减少损失。关于头文件路径如果你用了第三方库比如SDL2、sqlite3需要把库的头文件目录加到Compiler Options→Directories→Include里把库文件目录加到Lib里然后在链接选项里加-lSDL2或-lsqlite3。这个过程和 Linux 下用gcc手动编译是一样的只是 Dev-C 提供了图形界面来配置。关于多显示器Dev-C 的窗口位置记忆功能不太好如果你把窗口拖到副屏下次打开可能又回到主屏。这是老版本遗留的问题暂时没有完美的解决办法。可以将就一下或者用窗口管理工具强制指定位置。最后说一个我自己的习惯我会在C:\Dev-Cpp目录下建一个projects文件夹所有练习工程都放在里面按日期或者主题分子目录。这样找代码方便备份也简单——直接复制整个projects文件夹就行。Dev-C 的工程文件很小几百个工程加起来也就几 MB不占地方。写到这里Dev-C 的安装、配置、使用、排错基本覆盖全了。这个工具虽然界面朴素但胜在简单直接。对于刚入门的人来说少一层配置就少一层放弃的理由。等你把 C 语言的基础语法、指针、结构体、文件操作都练熟了再去折腾 VS Code 或者 CLion 也不迟。工具是拿来用的不是拿来供着的。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询