如果你在搜索引擎里敲下“windows11安装GCC”“Visual Studio Code下载教程”“Dev-C++中文汉化版”这几个关键词,大概率是个刚准备学C/C++的新手。我当年也是这么过来的:Windows装了一堆软件,却不知道编译器、编辑器、IDE根本不是一回事,结果要么gcc命令报错,要么写好的代码点运行却弹出一堆看不懂的英文。这篇就把从零到能写、能编译、能调试的完整流程捋清楚:Windows 11上装GCC(MinGW-w64),再配一套Visual Studio Code的C/C++开发环境,最后装一个Dev-C++做临时备用。适合零基础的学生、从其他语言转C/C++的开发者,也适合想重新整理自己开发机的老手。
1. 装C/C++环境,先搞懂这几样东西的关系
1.1 GCC是什么,Windows上为什么装的是MinGW-w64
GCC全称是GNU Compiler Collection,Linux和macOS上装开发环境时绕不开它。很多学校的C语言课、在线判题系统、开源项目默认都认GCC的编译参数和错误提示风格,可以说它是开源编译器的事实标准。
但Windows系统本身不自带GCC,你需要装一个移植版本。这个移植版本就是MinGW-w64。可能你会看到网上有人写MinGW,也有人写MinGW-w64,这两个不是同一个东西。老MinGW项目已经很久没更新了,32位为主,GCC版本停在老古董级别;现在社区里说的MinGW基本都默认指MinGW-w64这个分支,它持续跟进新版本GCC,同时支持64位和32位,而且工作方式很简单——解压一个压缩包就能用,不往系统里塞注册表。
那有人会问:我已经装了Visual Studio,里面不是自带编译器吗?对,Visual Studio自带的是MSVC编译器,命令叫cl.exe,它和新版C标准跟得也算紧,但它是商业工具链,配置起来麻烦,和开源社区的工具链互通性差。如果你要刷LeetCode、参加ACM训练、看开源仓库,或者以后想在Linux上干活,GCC那套思路是绕不开的。哪怕你电脑上装了Visual Studio,想用VS Code写C语言刷题,还是得单独装一份MinGW-w64。
1.2 Visual Studio Code和Dev-C++:编辑器和IDE不是一回事
很多新人把“写代码的软件”和“编译代码的软件”混在一起,其实这里有两个层次。Dev-C++是IDE(集成开发环境),它把编辑器、编译器、调试器、输出窗口捆在一起,你点一下编译运行,背后是它自带的GCC在干活。Visual Studio Code是编辑器,它本身不具备编译能力,装好C/C++扩展后也只是获得了写代码时的智能提示、跳转、高亮,真正要编译还得靠你装好的gcc.exe。
打个比方:Dev-C++像一台自带驾驶教程、挂挡刹车全集成好的学习车,新手上去就能打着火;VS Code像一台可以自己改装的高性能车,底盘、发动机、方向盘全都能换,但前提是你得懂一点机械原理。这两种方案没有谁绝对更好,只是使用场景不同。Dev-C++适合零基础快速上手,一个窗口搞定所有事;VS Code写起来更现代,插件生态好,以后不写C/C++了还能留着写Python、前端,不浪费。
顺便说个搜索热词:“Visual Studio Code和VS Code区别”。答案很简单,没有区别,VS Code就是Visual Studio Code的简称。容易搞混的是Visual Studio,那是微软出的另一个重量级IDE,光是安装包就好几个GB,主要用于Windows桌面、企业级项目开发;VS Code是免费轻量的文本编辑器,两个产品定位完全不同,下载时别下错。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装GCC编译器(MinGW-w64),从解压到命令行跑通
2.1 下载哪个版本:选UCRT、选64位,别找老式安装器
下载MinGW-w64有三种常见方式。第一种是用老式的MinGW安装器,网上很多教程还在推荐,但那个安装器背后的源仓库基本停更了,装出来的GCC版本老旧,连C++11特性都支棱不全,刷题时遇到一堆莫名报错很可能就是它造成的。第二种是MSYS2,它是一个软件包管理系统,能力很强,但对新手来说概念过多,而且是另一个生态,没必要一上来就折腾。第三种是我最推荐的:直接下载免安装压缩包,推荐从winlibs.com或者GitHub的niXman/mingw-w64-builds发布页拿现成的ZIP,解压即用。
以winlibs.com为例,打开页面后选“Win64”的“UCRT runtime”版本。这里解释一下参数含义:Win64表示64位编译器和生成的程序运行在64位系统上,Win11绝大多数都是x64处理器;UCRT是Windows新增的C运行库,新版本Windows带它,选UCRT版本不会出现缺DLL的问题。版本选择里还会看到seh和posix之类的字样,正常选择默认的即可,不用管它。下载下来大概一两百兆,解压后建议放到C盘根目录像C:\mingw64,或者D盘根目录,路径里别有空格和中文,后面配置会省很多麻烦。
2.2 配置系统环境变量PATH,让任意终端都能找到gcc
解压完成后,MinGW-w64的bin目录里就有一个gcc.exe,理论上已经能用了,但你在cmd里直接敲gcc是没有反应的,因为系统不知道去哪找它。这时候需要配置环境变量PATH,本质上是告诉Windows:如果有程序在命令行里被调用了,但当前目录没找到,就去我指定的几个目录里翻一翻。
Win11下的操作路径是:按Win键,在任务栏搜索框输入“环境变量”,点“编辑系统环境变量”,在弹出的“系统属性”对话框里点右下角的“环境变量”,然后在“系统变量”列表里找到Path这一项,双击打开,点“新建”,把C:\mingw64\bin这个路径加进去,确定保存。
配置完要记住一个关键操作:新开一个终端窗口。已经打开的cmd或PowerShell不会自动刷新这个环境变量列表,必须重新开。然后测试一下,输入:
bash复制where gcc
gcc --version
第一条会显示gcc.exe的实际路径,第二条会显示版本号,能看到版本信息就说明PATH配置成功了。如果提示“不是内部或外部命令”,大概率是路径填错、没保存、或者忘了重开终端。顺便说一个搜索里经常出现的问题“gcc升级后为啥还是旧版本”,很大原因是PATH里旧版本的gcc路径排在新版本前面,用where gcc查看实际命中的路径,把多余的那条删掉就行。
2.3 用gcc编译第一个C程序:一条命令看清全过程
环境配好后,就可以走一遍完整的编译流程。先在D盘新建一个工作目录,比如D:\c_workspace,写一个最简单的hello.c。用记事本或者VS Code写都行,一开始建议只输出英文,中文乱码问题后面第4节单独说。
c复制#include <stdio.h>
int main() {
printf("Hello, GCC!\n");
return 0;
}
然后在cmd里进入这个目录:
bash复制cd /d D:\c_workspace
gcc hello.c -o hello.exe
hello.exe
这里解释下参数:编译器把hello.c经过预处理、编译、汇编、链接四个阶段,得到一个可执行文件;-o后面的hello.exe是你指定的输出文件名,如果省略-o,编译器会默认生成一个叫做a.exe的文件。
第一次跑通这个流程后,你就建立了“写代码→编译→运行”的心智模型。这个模型非常重要,因为不管以后用VS Code还是Dev-C++,它们做的本质上都是替你调用这一个命令。
3. 安装Visual Studio Code并配成C/C++开发环境
3.1 下载VS Code时别和Visual Studio搞混
VS Code官方下载地址是code.visualstudio.com,下载Windows x64的安装包,大概几十到一百多MB,安装很快。安装向导里有三个选项务必勾上:添加到PATH、添加到右键菜单(Open with Code)、在资源管理器集成。这几个勾选会大大提高后续使用体验。
为什么不建议去visualstudio.com主站找?因为那个页面主推的是Visual Studio,一不留神就会下成一个好几个GB的全家桶。VS Code安装包和Visual Studio完全不是一个体型,你认准code.visualstudio.com这个域名就不会出错。
3.2 三个扩展装完,编辑器才有编译能力
装好VS Code后,打开左侧扩展面板,至少装这几个:
第一个是中文语言包,扩展ID一般是“Chinese (Simplified)”,装完会提示重启,重启后界面就变成简体中文。第二个是微软官方的C/C++扩展,这是写代码时的语法高亮、自动补全、错误提示、调试支持都靠它。第三个是Code Runner,提供一键运行代码的快捷键,适合快速测试单个文件。
装完这三个,再改一个设置:默认终端改成cmd。在VS Code里按Ctrl+Shift+P打开命令面板,输入“Terminal: Select Default Profile”,选Command Prompt。这么做是因为后续配置命令时,cmd的兼容性比PowerShell更省心,尤其对新手。
3.3 tasks.json和launch.json:从按Ctrl+Shift+B到F5调试
VS Code本身是个编辑器,它不知道gcc怎么编译代码,所以要在项目文件夹里建一个.vscode目录,往里面放配置文件。这里是最容易卡住的地方,网上教程很多,但变量名经常抄错,所以我把三份配置完整列出来,你先创建一个文件夹,比如D:\c_workspace,用VS Code“打开文件夹”,在资源管理器里新建.vscode文件夹,然后新建下列文件。
第一个文件是.vscode/tasks.json,它定义了怎么编译当前代码:
json复制{
"version": "2.0.0",
"tasks": [
{
"label": "build gcc",
"type": "process",
"command": "C:/mingw64/bin/gcc.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.exe"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"]
}
]
}
这里面的${file}、${fileDirname}、${fileBasenameNoExtension}都是VS Code的内置变量,分别表示当前打开文件的完整路径、文件所在目录、不带扩展名的文件名。也就是说,当你打开hello.c时,它会自动替换成gcc -g 当前文件路径 -o 同目录下的hello.exe。-g参数表示生成调试信息,F5调试时离不开它。
第二个文件是.vscode/launch.json,它定义了F5调试时怎么启动程序:
json复制{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++ Debug",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:/mingw64/bin/gdb.exe",
"preLaunchTask": "build gcc",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
这里面容易写错的是miDebuggerPath,它是调试器gdb.exe的路径,必须和你装的MinGW-w64路径对得上,否则按F5会报找不到调试器。preLaunchTask这一行的值“build gcc”要和tasks.json里的label严格一致,它表示按下F5时先自动执行编译任务。
第三个文件是.vscode/c_cpp_properties.json,它配置的是编辑器的智能提示:
json复制{
"configurations": [
{
"name": "Win64",
"includePath": ["${workspaceFolder}/**"],
"compilerPath": "C:/mingw64/bin/gcc.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
includePath告诉VS Code去哪找头文件,如果你不设置,写#include <stdio.h>时可能连头文件里的函数原型都提示不出来。compilerPath指向gcc,让智能提示能解析系统头文件。
配置好这三个文件后,打开hello.c,按Ctrl+Shift+B会执行编译任务,按F5会进入调试模式。到这里,VS Code才算真正配成了一个可用的C/C++ IDE。
3.4 Code Runner一键运行,以及它和调试模式怎么选
Code Runner扩展装好后,默认按键是Ctrl+Alt+N运行当前文件,Ctrl+Alt+M停止运行。它的原理还是调用gcc,只是省去了每次打开终端敲命令的步骤。
不过Code Runner有个小坑:它在终端面板里输出的中文可能会乱码,因为VS Code终端默认是UTF-8编码,而Windows控制台在中文区域默认是GBK编码。解决方法有两个:一是统一成UTF-8,在cmd里执行chcp 65001,或者在系统设置里开启Beta版使用Unicode UTF-8提供全球语言支持;二是代码里能不写中文就先不写中文,等遇到实际问题再处理编码。
那什么情况用Code Runner,什么情况用F5调试?如果是刷简单习题、验证一个语法片段,用Ctrl+Alt+N就够了;如果是排查复杂逻辑、看变量变化过程,必须用F5设置断点看调试信息。两种模式互补,不冲突,建议都留着。
4. 安装Dev-C++:经典IDE五分钟上手
4.1 下载安装与简体中文界面
Dev-C++最常见的版本是Orwell Dev-C++ 5.11,虽然官方版本年份有点久远,但胜在稳定、教程多、占内存小,刷题党的老电脑也能流畅跑。在SourceForge页面下载时要注意,页面广告较多,认准那个绿色的大下载按钮,别点到广告。安装包下载速度可能会慢,耐心等,实在等不住就搜索镜像站下载。
安装过程和常规Windows软件一样。一个好消息是Orwell Dev-C++ 5.11本身自带简体中文语言包,安装向导里第一步就能切换成中文,这一步对应了很多人找的“Dev-C++中文汉化版”。如果安装时跳过语言选择,也可以在菜单Tools→Environment Options里把Language改成Chinese。Win11的SmartScreen可能弹出安全提示,点击“仍要运行”即可,这属于Windows对未知exe的常规拦截,不是软件有问题。
4.2 首次设置编译器选项,解决中文显示乱码
首次启动Dev-C++会让你选主题和语言,选个顺眼的就行。接下来要做两件容易被忽略的事。
第一件是在菜单“工具→编译器选项”里,勾选“编译时加入以下命令”,然后填入:
text复制-std=c++17
如果不加这行,Dev-C++默认的编译标准停留在C++98,很多新语法编译不过。填完点确定,以后编译时就会自动带上这个参数。
第二件事是处理中文乱码。Dev-C++ 5.11的默认控制台行为比较特殊,它自带的旧版GCC输出中文时按GBK编码来处理,而新版MinGW-w64编译器按UTF-8处理。如果你在VS Code那边写的代码拿到Dev-C++编译,printf里的中文大概率变成一团乱码。
解决思路是给编译器加一个参数:
text复制-fexec-charset=GBK
这个参数告诉编译器:生成的程序在运行时,字符串按GBK编码输出。这样在Dev-C++自己的控制台里就能正常显示中文。如果你坚持用UTF-8,那就要在系统区域设置里打开Beta版UTF-8支持,否则冲突很难避免。新手阶段我建议写代码时先避开中文输出,把精力放在语法本身,能少踩很多编码相关的坑。
4.3 Dev-C++和VS Code怎么搭配使用
两个工具都装好之后,可以按这个思路分工:Dev-C++适合单文件练习、算法刷题、课堂演示,打开就写、写完就编译运行,心智负担最小;VS Code适合多文件工程、代码阅读、调试复杂逻辑、以后扩展到Python/前端开发。实际教学和入职场景里,很多人是先用Dev-C++理解了“编译运行”的基本概念,再切到VS Code学习更工程化的开发流程;反过来,如果你已经用VS Code写了一阵子,装一个Dev-C++当快速备用执行器也完全合理。
我个人不建议同时把两个工具用于同一个项目:文件在一个工具里建,另一个工具里打开,容易因为编码、路径差异产生不必要的困惑。选定一个主力工具,另一个当备份工具就好。
5. 高频问题排查与避坑记录
把实际安装和配置过程中最常见的坑整理成一张速查表,基本覆盖我这些年见过的90%翻车现场。
| 现象 | 原因 | 解决办法 |
|---|---|---|
| 终端提示“gcc不是内部或外部命令” | PATH没配好,或者当前终端窗口是配置前打开的 | 重新检查环境变量是否包含C:\mingw64\bin,重新打开cmd再试 |
| gcc --version显示旧版本号 | PATH里旧版gcc路径排在新版前面 | 用where gcc查看实际命中路径,删除旧路径,保留新路径 |
| VS Code里终端找不到gcc,但系统cmd能找到 | VS Code继承了打开时读取的PATH,启动时没刷新 | 完全关闭VS Code后重新打开 |
| 按Ctrl+Shift+B提示“没有要执行的构建任务” | tasks.json没保存或label拼写不一致 | 确认tasks.json里的label是“build gcc”,launch.json中preLaunchTask必须一致 |
| F5调试报“无法打开...exe” | 编译没成功,或者exe路径和program设置对不上 | 先手动命令行编译,再检查launch.json的program变量 |
| 调试提示找不到gdb.exe | miDebuggerPath路径写错 | 确认C:\mingw64\bin\gdb.exe真实存在,路径分隔符使用正斜杠/ |
| Dev-C++编译中文程序乱码 | 新版GCC和旧版控制台编码不匹配 | 在编译器命令中加-fexec-charset=GBK |
| Win11下载压缩包提示“阻止了无法识别应用” | SmartScreen安全拦截 | 点击“仍要运行”,该压缩包为正经工具 |
| Code Runner输出中文乱码 | VS Code终端UTF-8与系统GBK冲突 | 控制台执行chcp 65001,或源码中暂时避开中文输出 |
还有几个老生常谈的建议:所有工作目录路径尽量全英文、无空格;文件命名不带中文和奇怪符号;装好GCC后顺手用where gcc确认最终命中的路径只有一个;每次修改PATH后一定要重开终端再测试,旧窗口的临时环境变量不会自己刷新。
再补充一个热词里出现过的场景:“windows11内置linux”和“ubuntu安装gcc失败”。如果你在Win11里启用了WSL,本质上就是装了一个Linux子系统,那里面装GCC走的是另一个流程,通常是apt install build-essential。这篇讲的是Windows原生命令行环境下最直接的做法,WSL那条路线以后你转到Linux再研究也不迟。
这个环境装好之后,后面可以做的扩展还有很多:让你写的代码自动格式化、给VS Code配主题和代码片段、用CMake管理多文件工程,甚至把GCC换成Clang对比编译器的行为差异。但从零到能跑通第一个程序,这个最基础的目标已经完成了。
我个人在实际操作中的体会是:新手阶段不用急着追求“工具链最先进”,先把gcc编译那条命令行路线吃透,再使用VS Code和Dev-C++去提升效率,基础最扎实。最后分享一个小技巧:在你桌面或D盘根目录建一个专门放C语言练习的文件夹,里面按日期分文件夹,养成每个练习单独建目录的习惯,以后翻代码时你会感谢现在的自己。
