Dev C++ 安装配置与使用全指南:从零搭建C/C++开发环境
1. 项目概述:为什么是Dev C++?
如果你刚刚踏入C/C++编程的大门,或者正在寻找一个轻量、简单、不折腾的集成开发环境(IDE),那么Dev C++大概率会出现在你的备选清单里。它不像Visual Studio那样功能庞大到让人望而生畏,也不像纯文本编辑器+命令行那样对新手过于“硬核”。Dev C++的定位非常清晰:一个专为教学和个人学习设计的、开源的、免费的C/C++ IDE。它的核心价值在于“快速上手”和“最小化环境配置困扰”,让你能把精力集中在学习编程语言本身,而不是在配置编译器和链接库的泥潭里挣扎。
我见过太多初学者,在安装Visual Studio时被几十GB的下载量和复杂的组件选择搞得晕头转向,或者在配置VSCode的C++环境时,被tasks.json、launch.json和c_cpp_properties.json这三个配置文件劝退。Dev C++的出现,就是为了解决这个问题。它内置了MinGW编译器(一个Windows下的GCC移植版),安装即用,无需额外配置环境变量。你只需要下载一个安装包,一路“下一步”,就能获得一个完整的、可以编译运行C/C++代码的开发环境。对于数据结构、算法竞赛入门、学校课程作业等场景,Dev C++的简洁高效是无可替代的。
当然,我们必须正视它的局限性。Dev C++的代码编辑功能、调试体验和项目管理能力,与Visual Studio、CLion、甚至配置完善的VSCode相比,存在代差。它更适合小型项目和学习阶段。但正是这种“够用就好”的哲学,让它成为了无数程序员的“初恋”。接下来,我将带你从零开始,完成Dev C++的安装、配置,并分享一些高效使用的核心技巧和避坑指南,让你能真正用好这个经典工具。
2. 环境配置全流程详解
2.1 获取与安装Dev C++
目前,Dev C++最活跃的维护版本是Embarcadero(原Bloodshed Dev-C++的后续分支)发布的版本。避免从一些不明来源的网站下载旧版或捆绑了垃圾软件的版本,是第一步。
步骤一:下载官方安装包访问Embarcadero的GitHub仓库或其官方发布页面,下载最新的安装程序,例如Dev-Cpp 6.3.0 TDM-GCC 10.3.0 Setup.exe。文件名中的“TDM-GCC”指明了它捆绑的编译器版本,这里是GCC 10.3.0,对C++17/20有很好的支持,完全满足入门乃至进阶学习需求。
步骤二:执行安装
- 运行安装程序,选择安装语言(通常选英语)。
- 在“License Agreement”界面,点击“I Agree”。
- 关键步骤:选择组件。这里建议保持默认全选,特别是“Associate C and C++ files with Dev-C++”这一项,勾选后会让
.c和.cpp文件默认用Dev C++打开,方便日常使用。 - 选择安装路径。强烈建议路径中不要包含中文或空格,例如
D:\Dev-Cpp。这是为了避免后续编译时可能出现的、因路径解析问题导致的诡异错误。 - 点击“Install”开始安装,过程很快。
注意:安装过程中,Windows Defender或第三方杀毒软件可能会弹出警告,提示“TDM-GCC”或某些组件有风险。这是因为编译器本身需要向系统目录写入文件或修改环境变量,属于正常行为。请选择“允许”或“更多信息->仍要运行”。
步骤三:首次运行与基本配置安装完成后,首次启动Dev C++,会提示你选择界面语言和主题。你可以选择“简体中文/Chinese”让界面更友好,主题按个人喜好选择即可。 接下来会有一个编译器配置的自动检测过程,通常它会自动找到捆绑的MinGW,无需手动干预。至此,一个可用的C/C++开发环境就已经搭建完毕了。你可以立刻新建一个文件,写下经典的Hello, World!并运行。
2.2 编译器与调试器配置要点
虽然安装包已经帮我们配置好了大部分内容,但了解其背后的机制,对于排查问题和进行个性化设置至关重要。
理解Dev C++的编译体系Dev C++本身只是一个IDE(集成开发环境),它不负责编译代码。真正的编译工作是由它背后调用的MinGW GCC编译器完成的。Dev C++通过一个名为“编译器集合”的配置来管理这些外部工具。你可以通过菜单栏的“工具(Tools)” -> “编译选项(Compiler Options)”来查看和修改。
在“编译器选项”对话框中,最重要的标签页是“目录(Directories)”:
- 二进制文件(Binaries):这里指向MinGW的
bin目录,例如D:\Dev-Cpp\MinGW64\bin。这里存放着g++.exe(C++编译器)、gcc.exe(C编译器)、gdb.exe(调试器)等核心可执行文件。Dev C++通过系统PATH或这里的设置来找到它们。 - 库文件(Libraries):指向MinGW的
lib目录,存放着系统库文件(如libstdc++)。 - C包含文件(C Includes)和C++包含文件(C++ Includes):分别指向
include目录,存放着C标准库和C++标准库的头文件。
对于绝大多数用户,安装程序已经正确设置了这些路径,切勿随意修改,除非你明确知道要添加第三方库(如OpenCV、SDL2)。
启用与配置调试器默认情况下,Dev C++的调试功能可能没有完全启用,或者生成的调试信息不足。为了获得更好的调试体验(设置断点、查看变量值),需要进行以下配置:
- 打开编译选项:“工具” -> “编译选项”。
- 切换到“代码生成/优化(Code Generation)”标签页(或类似名称,不同版本可能略有差异)。
- 在“连接器(Linker)”部分,确保勾选了“产生调试信息(Generate debugging information)”。这会在编译时加入
-g参数,让生成的可执行文件包含调试符号。 - 切换到“编译器(Compiler)”标签页,在“编译时加入以下命令(Add the following commands when calling compiler)”的输入框中,可以加入
-g3。-g3比默认的-g包含更多调试信息(例如宏定义)。 - 点击“确定”保存。
完成上述设置后,当你按F8(编译)或F11(编译并运行)时,生成的就是带有调试信息的可执行文件。此时,你可以使用F5(调试)功能,或者通过“调试(Debug)”菜单进行单步执行、观察变量等操作。
2.3 个性化工作环境设置
一个符合个人习惯的IDE能极大提升编码效率和舒适度。Dev C++虽然古老,但一些基本的个性化设置还是有的。
编辑器外观与字体通过“工具” -> “编辑器选项(Editor Options)”进行设置。
- 显示(Display):可以设置字体、字号、行距。推荐使用等宽字体,如Consolas、Source Code Pro、JetBrains Mono,字号11-14为宜。
- 语法高亮(Syntax):可以为不同的代码元素(关键字、注释、字符串等)设置颜色和字体样式。选择一个对比度清晰、长时间观看不费眼的配色方案。
- 代码补全与符号配对:在“代码补全(Code Completion)”和“符号配对(Auto Paren Matching)”标签页,可以启用或关闭自动补全、括号自动配对等功能。对于新手,建议全部开启,有助于减少语法错误。
项目与文件管理习惯
- 默认保存路径:在“工具” -> “环境选项(Environment Options)” -> “文件(File)”中,可以设置新建项目和文件的默认保存目录。建议设置为一个有意义的路径,如
D:\CppProjects,避免文件散落各处。 - 创建项目而非单个文件:对于任何超过一个源文件的练习,都强烈建议使用“文件” -> “新建” -> “项目(Project)”。项目文件(
.dev)能帮你管理多个源文件、头文件以及编译参数。直接编译单个.cpp文件在涉及多文件时会出现链接错误。
3. 核心功能使用指南与实操
3.1 第一个程序:从Hello World到项目创建
让我们通过一个完整的流程,熟悉Dev C++的核心操作。
创建并运行单个文件
- 启动Dev C++,点击“文件(File)” -> “新建(New)” -> “源代码(Source File)”,或直接按Ctrl+N。
- 在弹出的编辑器中,输入以下代码:
#include <iostream> using namespace std; int main() { cout << "Hello, Dev C++!" << endl; return 0; } - 点击“文件” -> “保存(Save)”,或按Ctrl+S。选择一个目录,将文件命名为
hello.cpp。再次强调,路径和文件名不要有中文和空格。 - 按F11(编译运行),或者点击工具栏上的“编译运行(Compile & Run)”按钮(一个红色的感叹号)。
- 如果代码无误,你会看到一个控制台窗口弹出,显示“Hello, Dev C++!”,程序运行完毕后窗口会关闭。如果代码有语法错误,下方的“编译日志(Compile Log)”窗口会显示具体的错误信息,双击错误行可以快速定位到代码位置。
创建并管理一个项目对于更复杂的学习内容,如使用多个文件、自定义头文件,必须使用项目。
- “文件” -> “新建” -> “项目(Project)”。
- 在弹出的对话框中,选择“Console Application”(控制台应用程序),并为项目命名,例如
MyFirstProject。选择C++项目。 - 选择项目的保存路径。
- 点击“确定”后,Dev C++会自动为你生成一个包含
main.cpp的项目。左侧的“项目管理(Project)”窗口会显示项目结构。 - 在项目名称上右键,选择“新建文件(New File)”或“添加文件(Add File)”,可以向项目中添加新的源文件或头文件。
- 编译项目时,Dev C++会自动编译项目中的所有源文件并进行链接。只需对项目按F11即可。
3.2 编译、运行与调试实战
编译与运行的几种方式
- F11 (编译运行):最常用的快捷键。先编译(如果源代码有改动),然后运行生成的可执行文件。
- F9 (编译):只编译,不运行。用于检查语法错误。
- Ctrl+F10 (运行):运行上次成功编译后生成的可执行文件,不重新编译。
- 工具栏按钮:对应上述功能,鼠标操作。
调试功能入门调试是查找程序逻辑错误(Bug)的利器。假设我们有以下有问题的程序,用于计算1到10的和:
#include <iostream> using namespace std; int main() { int sum = 0; for (int i = 1; i < 10; i++) { // 错误:应该是 i <= 10 sum += i; } cout << "Sum from 1 to 10 is: " << sum << endl; // 预期输出55,实际输出45 return 0; }- 设置断点:在怀疑有问题的代码行(例如第6行
sum += i;)左侧灰色区域单击,会出现一个红点,这就是断点。程序运行到此处会暂停。 - 开始调试:按F5或点击“调试(Debug)” -> “调试(Debug)”。程序开始运行,并在断点处暂停,该行代码会高亮显示。
- 单步执行与观察变量:
- F7 (Step Into):单步执行,如果遇到函数调用,会进入函数内部。
- F8 (Step Over):单步执行,但将函数调用作为一个整体一步执行,不进入其内部。最常用。
- Ctrl+F7 (Step Out):从当前函数内部跳出,返回到调用它的地方。
- 在程序暂停时,下方的“调试(Debug)”窗口(可能需要从“视图(View)”菜单中打开)会显示当前函数内的局部变量及其值。你可以观察到
i和sum的变化过程。
- 通过单步执行,你会清晰地看到循环在
i=9执行最后一次加法后,i++变成10,然后i < 10条件为假,循环结束。i=10并没有被加到sum中,从而发现了错误。
3.3 常用快捷键与效率技巧
熟练使用快捷键能让你编码如飞。以下是一些最核心的Dev C++快捷键:
| 快捷键 | 功能 | 使用场景 |
|---|---|---|
| F11 | 编译运行 | 写完代码后立即测试 |
| F9 | 编译 | 只检查语法错误 |
| Ctrl+F10 | 运行 | 快速重新运行程序 |
| F5 | 调试 | 启动调试会话 |
| F8 | 单步跳过 (Step Over) | 调试时逐行执行,不进入函数 |
| F7 | 单步进入 (Step Into) | 调试时进入函数内部 |
| Ctrl+F7 | 单步跳出 (Step Out) | 调试时从函数跳出 |
| Ctrl+N | 新建文件 | 快速开始编码 |
| Ctrl+S | 保存文件 | 频繁保存,防止意外丢失 |
| Ctrl+Shift+S | 全部保存 | 保存所有打开的文件 |
| Ctrl+F | 查找 | 在当前文件中搜索文本 |
| Ctrl+Shift+F | 在文件中查找 | 在整个项目或目录中搜索 |
| Ctrl+Z / Ctrl+Y | 撤销 / 重做 | 代码编辑必备 |
| Ctrl+D | 复制当前行 | 快速复制一行代码 |
| Ctrl+Shift+上/下箭头 | 移动当前行 | 调整代码顺序 |
| Ctrl+/ | 注释/取消注释行 | 快速注释单行代码 |
| Ctrl+Shift+/ | 注释/取消注释块 | 注释多行代码 |
效率技巧:
- 使用代码模板:对于经常写的代码结构(如
main函数框架、类定义),可以将其保存为代码模板。通过“工具”->“编辑器选项”->“代码(Code)”标签页进行管理。 - 项目管理器:善用左侧的项目管理器,可以清晰看到项目结构,右键文件可以进行打开、编译、从项目中移除等操作。
- 编译日志:编译出错时,不要慌张。仔细阅读“编译日志”窗口中的错误信息。通常第一个错误是最关键的,后面的错误可能是由它引发的连锁反应。双击错误信息可以直接跳转到出错行。
4. 进阶配置与第三方库集成
当你需要超越标准库,使用一些强大的第三方库(例如图形库、数学库)时,就需要手动配置Dev C++。这是从“入门”迈向“实用”的关键一步。
4.1 集成静态库与动态库
第三方库通常以两种形式提供:静态库(.a或.lib文件)和动态库(.dll文件及其对应的导入库.dll.a或.lib)。配置原理是相通的:告诉编译器头文件在哪,告诉链接器库文件在哪。
以集成一个名为mylib的库为例:假设你将库文件解压到了D:\Libraries\mylib,其目录结构如下:
D:\Libraries\mylib\ ├── include\ (存放头文件 .h) │ └── mylib.h ├── lib\ (存放库文件) │ ├── libmylib.a (静态库,GCC风格) │ └── libmylib.dll.a (动态库的导入库,用于链接) └── bin\ (可能存放运行时需要的 .dll 文件) └── mylib.dll配置步骤:
- 打开编译选项:“工具” -> “编译选项”。
- 添加头文件路径:切换到“目录(Directories)”标签页,选择“C++包含文件(C++ Includes)”,点击下方的“...”按钮,添加路径
D:\Libraries\mylib\include。这样编译器就能找到#include <mylib.h>了。 - 添加库文件路径:在同一个标签页,选择“库文件(Libraries)”,添加路径
D:\Libraries\mylib\lib。这样链接器就知道去哪里找.a文件。 - 添加链接库:切换到“参数(Parameters)”标签页(或“连接器(Linker)”标签页,取决于版本)。在“连接器(Linker)”的输入框中,添加
-lmylib。-l是链接器选项,后面跟库名(去掉前缀lib和后缀.a)。例如,libmylib.a就写-lmylib。 - 处理动态库:如果使用动态库,除了上述步骤,还需要确保程序运行时能找到
mylib.dll。有两种方法:- 将
mylib.dll复制到你的项目可执行文件(.exe)所在的目录。 - 将
D:\Libraries\mylib\bin添加到系统的PATH环境变量中。
- 将
完成配置后,你就可以在代码中#include <mylib.h>,并调用其中的函数了。
4.2 常用开发库配置示例(以图形库EasyX为例)
EasyX是一个针对C++的简易图形库,在国内许多C语言和C++入门图形编程教学中被广泛使用。它在Dev C++上的配置是一个经典案例。
- 下载EasyX:从其官网下载针对Dev C++(即MinGW)的版本。通常是一个
.h头文件和一个.a库文件。 - 放置文件:
- 将
easyx.h等头文件复制到Dev C++安装目录下的include文件夹,例如D:\Dev-Cpp\MinGW64\include。这是全局配置,所有项目都能用。 - 将
libeasyx.a库文件复制到Dev C++安装目录下的lib文件夹,例如D:\Dev-Cpp\MinGW64\lib。
- 将
- 链接库:在项目的“编译选项”->“参数”->“连接器”中,添加
-leasyx。对于EasyX,可能还需要链接其他图形库,完整的链接参数通常是-leasyx -lgdi32 -lole32。 - 编写测试代码:新建一个项目,输入以下代码:
#include <graphics.h> // EasyX的主头文件 #include <conio.h> int main() { initgraph(640, 480); // 初始化一个640x480的图形窗口 circle(320, 240, 100); // 在窗口中心画一个半径为100的圆 getch(); // 按任意键继续 closegraph(); // 关闭图形窗口 return 0; } - 按F11编译运行,如果看到一个画着圆形的窗口,说明配置成功。
实操心得:对于像EasyX这样“绿色”的库,直接复制到MinGW系统目录是最简单的方法。但对于需要多版本管理或更规范的项目,建议采用上一节的方法,为每个库创建独立的目录,并在项目级别配置路径,这样项目更干净,依赖关系更清晰。
4.3 多文件项目管理与编译参数调优
随着项目规模增长,合理的文件组织和编译设置变得重要。
项目文件组织
- 将源代码(
.cpp)放在src文件夹。 - 将头文件(
.h或.hpp)放在include文件夹。 - 在Dev C++的项目管理器中,可以通过右键项目->“添加文件夹(Add Folder)”来映射物理文件夹,保持IDE内视图的整洁。
编译参数调优在“编译选项”的“参数(Parameters)”标签页,我们可以为编译器和链接器添加各种标志。
- 编译器参数(C++编译器):
-std=c++11/-std=c++17:指定使用的C++语言标准。建议使用-std=c++17以启用现代特性。-Wall:开启大部分警告信息。强烈建议开启,编译器警告能帮你发现很多潜在问题。-Wextra:开启额外的警告。-O2:启用二级优化,在发布版本时使用,可以提升程序运行速度。
- 连接器参数:
-static:静态链接,将依赖的库都打包进最终的可执行文件,这样生成的.exe文件更大,但可以在没有安装相应运行库的电脑上运行。-mwindows:用于Windows GUI程序(非控制台程序),链接时会省略控制台窗口。如果你用EasyX写图形程序,并且不想看到后面那个黑乎乎的控制台窗口,可以加上这个参数。
一个常见的、对学习者友好的参数组合是:-std=c++17 -Wall -Wextra。它确保你使用现代标准,并且让编译器尽可能多地提醒你代码中的不严谨之处。
5. 常见问题排查与避坑指南
即使环境配置正确,在学习和使用过程中也难免会遇到各种问题。这里汇总了一些典型问题及其解决方案。
5.1 编译与链接错误大全
1. “undefined reference to `WinMain@16'” 错误
- 问题描述:编译一个应该是控制台程序的项目时,报此链接错误。
- 原因分析:链接器找不到程序的入口点
main函数。这通常是因为你创建了一个“Windows Application”类型的项目,但写的却是控制台程序的main函数。或者,你的main函数拼写错误(如写成了mian)。 - 解决方案:
- 检查项目类型。在“项目(Project)” -> “项目属性(Project Options)”中,确保“类型(Type)”是“Console Application”。
- 检查
main函数的签名是否正确:int main()或int main(int argc, char* argv[])。
2. “ld returned 1 exit status” 错误
- 问题描述:这是一个非常笼统的链接错误,通常跟在更具体的错误信息后面。
- 原因分析:它表示链接过程失败了。根本原因需要看它前面的错误信息。常见原因有:
- 使用了库函数但未链接对应的库(如数学函数未加
-lm)。 - 函数声明了但未定义(只有头文件,没有实现文件)。
- 程序的主函数
main已经有一个实例在运行(比如上一个编译的程序窗口没关闭)。
- 使用了库函数但未链接对应的库(如数学函数未加
- 解决方案:
- 仔细阅读“编译日志”中
ld returned 1 exit status之前的错误行。 - 如果是库函数问题,添加对应的链接参数。
- 如果是函数未定义,检查是否包含了正确的源文件到项目中。
- 关闭之前运行的程序窗口再重新编译。
- 仔细阅读“编译日志”中
3. “cannot find -lxxx” 错误
- 问题描述:链接器找不到名为
libxxx.a的库文件。 - 原因分析:
-lxxx链接参数添加了,但链接器在指定的库文件路径下找不到libxxx.a。 - 解决方案:
- 检查“编译选项”->“目录”->“库文件”中是否添加了正确的路径。
- 检查库文件的名字是否正确,GCC风格的静态库通常是
libxxx.a,确保-l后面的名字xxx与之匹配。 - 检查库文件是否适用于你的编译器(MinGW GCC),而不是VC++的
.lib库。
4. 中文乱码问题
- 问题描述:在控制台输出或从文件读取中文时,显示为乱码。
- 原因分析:Windows控制台默认使用GBK编码,而Dev C++的源代码文件默认保存为UTF-8 without BOM编码(或其它编码),导致编码不匹配。
- 解决方案(推荐方案二):
- 方案一(改源码编码):在Dev C++中,点击“文件”->“另存为(Save As...)”,在对话框底部选择“编码(Encoding)”为“Chinese GB2312(Simplified)”或“ANSI”,然后保存。这样源码文件就是GBK编码,与控制台匹配。但不利于跨平台和现代工具处理。
- 方案二(改控制台编码,推荐):在程序开头,使用Windows API设置控制台代码页。在
main函数最开始加入:
同时,确保你的源代码文件保存为UTF-8 without BOM编码(Dev C++默认即是)。这是更现代、更通用的做法。#include <windows.h> int main() { SetConsoleOutputCP(CP_UTF8); // 设置控制台输出为UTF-8 // 你的代码... }
5.2 运行时异常与调试技巧
1. 程序一闪而过
- 问题描述:控制台程序运行后,窗口瞬间关闭,看不到输出结果。
- 原因分析:程序正常执行完毕,自动退出。
- 解决方案:
- 在
main函数return 0;前,添加system("pause");语句(需要#include <cstdlib>)。但这会依赖系统命令,不是好习惯。 - 使用
cin.get();等待用户输入一个字符。 - (最佳实践)在Dev C++中,直接按Ctrl+F10运行程序,而不是F11。这样程序运行结束后,控制台窗口会保持打开,并显示“Process exited after ... seconds with return value 0”的提示。这是Dev C++自带的功能,无需修改代码。
- 在
2. 调试时变量显示“”或不可用
- 问题描述:在调试模式下,观察窗口看不到变量的值,或者显示为优化后的值。
- 原因分析:编译器优化(如-O1, -O2)可能会移除或改变变量,影响调试。或者调试信息生成不完整。
- 解决方案:
- 确保按照“2.2 启用与配置调试器”中的步骤,开启了“产生调试信息”并添加了
-g或-g3参数。 - 在调试版本中,避免使用高等级的优化选项。可以在“编译选项”->“代码生成/优化”中,将优化级别设置为“无(No optimization)”。
- 确保按照“2.2 启用与配置调试器”中的步骤,开启了“产生调试信息”并添加了
3. 程序崩溃(段错误)
- 问题描述:程序运行时突然崩溃,提示“Segmentation fault”或类似信息。
- 原因分析:通常是访问了非法内存,例如:
- 解引用空指针或野指针。
- 数组下标越界。
- 使用已释放的内存。
- 排查技巧:
- 使用调试器:在可能出错的代码行前设置断点,单步执行,观察指针的值和数组索引。
- 代码审查:仔细检查所有指针操作和数组访问。对于指针,确保在解引用(
*p或p->)前进行了有效性判断(if (p != nullptr))。对于数组,确保索引i满足0 <= i < size。 - 简化问题:如果代码复杂,尝试注释掉部分代码,逐步缩小问题范围。
5.3 性能优化与编码习惯建议
1. 开启编译器警告务必在编译参数中加入-Wall -Wextra。编译器是你的第一道防线,很多潜在的逻辑错误和不良编码习惯都能通过警告发现。把警告当作错误来处理,是写出健壮代码的好习惯。
2. 区分调试版本与发布版本对于稍大的项目,可以创建两个编译配置。
- 调试配置:参数为
-std=c++17 -Wall -Wextra -g3。关闭优化,包含完整调试信息,便于调试。 - 发布配置:参数为
-std=c++17 -O2 -s。开启优化(-O2),剥离调试符号(-s,减小文件体积)。 在Dev C++中,可以通过“执行(Execute)”->“编译参数(Compilation Parameters)”来快速切换,或者通过创建不同的“编译器集合(Compiler Set)”来管理。
3. 养成良好的项目备份习惯Dev C++的项目文件(.dev)有时可能损坏。定期备份你的源代码文件(.cpp,.h)到云盘或其他地方。项目文件可以重新创建,但源代码是无价的。
4. 适时考虑升级工具链当你对C++的理解加深,开始接触现代C++特性(C++14/17/20)、需要更强大的代码分析、重构和调试功能时,Dev C++可能会显得力不从心。这时,可以考虑迁移到更现代的IDE,如:
- Visual Studio Community:功能极其强大,对Windows开发支持最好,但体积庞大。
- Visual Studio Code + C/C++扩展:轻量灵活,配置稍复杂,但社区活跃,扩展丰富。
- CLion:JetBrains出品,跨平台,智能提示和重构功能一流,但属于商业软件。
对于纯粹的初学者和教学环境,Dev C++的简单直接依然是巨大的优势。它让你专注于语言本身,而不是工具。当你用Dev C++打下了坚实的基础,再切换到其他更复杂的IDE时,你会更加清楚自己需要什么,学习曲线也会平缓得多。工具终究是为目的服务的,用顺手的,就是最好的。
