Dev-C++ 默认使用自带的MinGW-w64编译器,与Visual Studio的MSVC不兼容;需避免中文路径、手动添加system("pause")防闪退;调试功能基本失效,建议用VS Code替代。

Dev-C++ 用的是 MinGW,不是你装的 Visual Studio 编译器
Dev-C++ 自带的编译器是 MinGW-w64(旧版是 MinGW),它和 MSVC(Visual Studio 的 cl.exe)完全不兼容。你本地装了 VS,Dev-C++ 也不会自动用它——除非你手动改配置,但**强烈不建议**。MinGW 生成的是 Windows 原生 PE 文件,调用的是 libstdc++ 和 mingw32 运行时,而 MSVC 用的是 MSVCPxx.dll 和 vcruntime。混用会导致链接失败、undefined reference 或运行时崩溃。
实操建议:
立即学习“C++免费学习笔记(深入)”;
- 别删 Dev-C++ 自带的
MinGW64文件夹(通常在安装目录下的MinGW64子目录) - 如果提示“cannot find -lstdc++”,说明 MinGW 路径没认对,不是缺库——检查
Tools → Compiler Options → Directories → Libraries是否指向了MinGW64\lib - 新版 Dev-C++(如 6.3+)默认用
x86_64-w64-mingw32-g++.exe,路径应为MinGW64\bin\g++.exe,不是gcc.exe
中文路径或文件名会导致编译失败
MinGW 的 g++ 对非 ASCII 路径支持极差,哪怕项目路径含中文、空格、括号(比如 D:\我的C++代码\hello.cpp),都会报 fatal error: no input files 或直接卡在预处理阶段。
实操建议:
立即学习“C++免费学习笔记(深入)”;
- 把 Dev-C++ 安装到纯英文路径,例如
C:\Dev-Cpp - 新建项目时,项目路径必须全英文、无空格、无特殊符号,推荐
C:\cpp\lesson1 - 如果已建在中文路径下,不要只改文件名——要整个项目文件夹剪切到英文路径,再用 Dev-C++ 重新打开
.dev工程文件
“编译成功但运行一闪退”其实是正常现象
Dev-C++ 默认生成控制台程序,运行完就退出,不是 bug。它不会自动加 system("pause") 或 getchar(),所以你看不见输出结果。
实操建议:
立即学习“C++免费学习笔记(深入)”;
- 在
main()最后加一行:system("pause");(需#include <stdlib.h>) - 更安全的做法是:
std::cin.get();(需#include <iostream>,且确保输入缓冲区为空,可先加std::cin.ignore();) - 或者直接用快捷键
F10(运行)而非F9(编译运行),这样控制台窗口会保留在前台
警告:Dev-C++ 的调试器(GDB)在 Win10/11 上基本不可用
自带的 GDB 版本老旧(常为 7.6 或更早),与现代 Windows 的 ASLR、符号表格式不兼容,断点经常不命中,变量显示为 <optimized out></optimized>,甚至启动就报 Cannot access memory at address。
实操建议:
立即学习“C++免费学习笔记(深入)”;
- 关掉调试功能:取消勾选
Tools → Compiler Options → Settings → Debugging → Add debugging info - 用输出代替调试:多打
std::cout << "x=" << x << std::endl; - 真要调试,换 VS Code + C/C++ 扩展 + MinGW,比 Dev-C++ 稳定得多
最麻烦的其实是工程配置分散在多个地方:编译器路径、头文件搜索路径、库路径、链接器参数……改错一个就可能让整个项目无法重建。与其反复调这些,不如接受 Dev-C++ 就是个写小练习的轻量工具,复杂项目直接上 CMake + VS Code。









