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

资讯详情

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

如何使用VsCode编译C语言?

如何使用VsCode编译C语言? 文章目录目录一、搭建环境1.1 VsCodemingw32 下载1.2 搭建一个模板1.3 编译并运行1.4 调试实战1.4.1 设置断点1.4.2 启动调试并单步执行1.4.3 查看变量值1.4.4 launch.json 关键配置项说明二、常见问题与排查2.1 提示「gcc 不是内部或外部命令」2.2 控制台输出中文乱码2.3 点击调试按钮无法启动调试2.4 常见错误速查表VScode 是 Visual Studio Code 的简称由微软开发的一款现代化、轻量级的代码编辑器。它支持多种主流编程语言如 JavaScript、Python、C、Java 等并通过插件扩展提供更广泛的功能。VScode 可以在 Windows、macOS 和 Linux 系统上运行为开发者提供了统一的开发环境。目录一、搭建环境1.1 VsCodemingw32 下载1.2 搭建一个模板1.3 编译并运行1.4 调试实战1.4.1 设置断点1.4.2 启动调试并单步执行1.4.3 查看变量值1.4.4 launch.json 关键配置项说明二、常见问题与排查2.1 提示「gcc 不是内部或外部命令」2.2 控制台输出中文乱码2.3 点击调试按钮无法启动调试三、总结摘要本文详细介绍如何在 Windows 环境下使用 VScode 搭配 mingw32 搭建 C 语言开发环境涵盖 VScode 与 mingw32 的下载安装、环境变量配置以及通过 tasks.json 和 launch.json 构建编译调试模板最后演示编译运行 C 程序的方法。适合刚接触 C 语言、希望在 VScode 中完成编译调试的初学者阅读。一、搭建环境1.1 VsCodemingw32 下载(1) 下载VsCode或访问 VScode 官网 下载最新版① 解压到D盘跟目录② 运行[vscode.reg]注册右键菜单③ 进入[pack]文件夹运行[install.bat]。安装基本插件。(2) 下载mingw32或访问 MinGW-w64 官网 下载① 解压任意目录② 我的电脑右键–高级系统设置–高级–环境变量–系统变量–Path(双击)–空白行(双击)–添加[x:\mingw32\bin](2) 下载mingw32① 解压任意目录② 我的电脑右键–高级系统设置–高级–环境变量–系统变量–Path(双击)–空白行(双击)–添加[x:\mingw32\bin]下面是完整的配置流程图从下载到验证 gcc 一目了然是否下载 VScode解压到 D 盘根目录运行 vscode.reg 注册右键菜单运行 install.bat 安装插件下载 mingw32解压到任意目录配置环境变量 Path添加 x:\\mingw32\\bin重启 VScode终端验证 gcc --version验证是否成功配置完成进入下一步检查 Path 路径是否正确1.2 搭建一个模板① 新建文件夹[test]② 新建文件夹[test.vscode]③ 新建文件[test.vscode\tasks.json]填写如下内容{tasks:[{type:cppbuild,label:C/C: gcc.exe 生成活动文件,command:gcc.exe,args:[-fdiagnostics-coloralways,-stdgnu99,-fpack-struct,-fshort-enums,-g,${fileDirname}\\*.c,-o,${fileDirname}\\${fileBasenameNoExtension}.exe],options:{cwd:${fileDirname}},problemMatcher:[$gcc],group:{kind:build,isDefault:true},detail:调试器生成的任务。}],version:2.0.0}④ 新建文件[.vscode\launch.json]填写如下内容{version:0.2.0,configurations:[{name:C/C: gcc.exe 生成和调试活动文件,type:cppdbg,request:launch,program:${fileDirname}\\${fileBasenameNoExtension}.exe,args:[],stopAtEntry:false,cwd:${fileDirname},environment:[],externalConsole:false,MIMode:gdb,miDebuggerPath:gdb.exe,setupCommands:[{description:为 gdb 启用整齐打印,text:-enable-pretty-printing,ignoreFailures:true},{description:将反汇编风格设置为 Intel,text:-gdb-set disassembly-flavor intel,ignoreFailures:true}],preLaunchTask:C/C: gcc.exe 生成活动文件}]}⑤ 新建文件[test\test.c]填写如下内容#includestdbool.h#includestdint.h#includestdio.h#includestdlib.h#includestring.hintmain(){// uint8_t 是无符号 8 位整数取值范围 0~255// 当 a b 时a - b 会发生无符号下溢// 结果会回绕成很大的正数如 4 - 5 251而不是 -1uint8_ta4,b5;// 危险写法a - b 在 uint8_t 下先回绕为 251再与 0 比较// 导致条件恒为真逻辑与数学直觉不符。if(a-b0){printf(a-b:%d\r\n,a-b);// 实际输出 251而非 -1}else{printf(b-a:%d\r\n,b-a);}// 安全写法先比较大小再做减法避免无符号下溢if(ab){printf(a-b:%d\r\n,a-b);}else{printf(b-a:%d\r\n,b-a);}return0;}1.3 编译并运行1.4 调试实战编译运行成功后接下来学习如何用 VScode 调试 test.c掌握设置断点、单步执行和查看变量值的方法。1.4.1 设置断点打开test.c在代码行号左侧的灰色区域单击即可在该行设置断点红点。建议在uint8_t a 4, b 5;这一行设置断点程序运行到此处会暂停。1.4.2 启动调试并单步执行按F5启动调试程序会先执行preLaunchTask自动编译再停在断点处。此时顶部会出现调试控制栏常用按钮如下继续F5运行到下一个断点或程序结束单步跳过F10执行当前行不进入函数内部单步进入F11进入函数内部逐行执行单步跳出ShiftF11跳出当前函数重启CtrlShiftF5重新开始调试停止ShiftF5结束调试。按F10单步跳过观察程序依次执行if判断和printf输出。1.4.3 查看变量值调试暂停时左侧「运行和调试」面板的「变量」区域会实时显示局部变量a、b的值。也可以把鼠标悬停在代码中的变量名上查看当前值。由于a 4、b 5第一个if (a - b 0)中a - b发生无符号下溢回绕为 251条件恒为真因此会输出a-b:251。单步执行到第二个if (a b)时条件为假输出b-a:1。通过调试可以直观看到无符号下溢的整个过程。1.4.4 launch.json 关键配置项说明launch.json中的几个关键配置项作用如下配置项取值作用stopAtEntryfalse是否在main函数入口处自动暂停。设为true时启动调试会直接停在main第一行方便从头观察设为false则直接运行到第一个断点。externalConsolefalse是否使用外部控制台窗口运行程序。设为false时在 VScode 内置终端输出便于查看日志设为true时会弹出独立的 Windows 命令行窗口适合需要交互输入的场景。miDebuggerPathgdb.exe指定调试器 gdb 的路径。若 gdb 不在环境变量中需填写完整路径如x:\\mingw32\\bin\\gdb.exe。preLaunchTaskC/C: gcc.exe 生成活动文件启动调试前自动执行的任务必须与tasks.json中的label完全一致否则会报「任务不存在」错误。支持多个C文件同时编译但只能存在一个main函数二、常见问题与排查2.1 提示「gcc 不是内部或外部命令」现象在 VScode 中按CtrlShiftB编译时终端报错gcc 不是内部或外部命令也不是可运行的程序或批处理文件。原因mingw32 的bin目录没有正确添加到系统环境变量Path中或者添加后未重启 VScode / 终端。解决方案确认 mingw32 解压目录下存在bin\gcc.exe文件右键「我的电脑」→「属性」→「高级系统设置」→「环境变量」在「系统变量」中找到Path双击后新增一行填入x:\mingw32\binx替换为你的实际盘符点击「确定」保存后完全关闭并重新打开 VScode在 VScode 终端输入gcc --version若能显示版本号则配置成功。2.2 控制台输出中文乱码现象程序运行后printf输出的中文在终端中显示为乱码。原因Windows 控制台默认使用 GBK 编码而源码文件保存为 UTF-8 编码两者不一致导致乱码。解决方案任选其一在tasks.json的args中追加编译参数-fexec-charsetGBK让生成的程序按 GBK 输出中文或者将源码文件另存为 GBK 编码VScode 右下角点击编码格式切换或者在main函数开头调用system(chcp 65001);将控制台切换为 UTF-8 编码。2.3 点击调试按钮无法启动调试现象按F5调试时提示找不到gdb.exe或提示preLaunchTask任务不存在。原因launch.json中的miDebuggerPath指向的gdb.exe不在环境变量中或preLaunchTask的名称与tasks.json中的label不一致。解决方案在终端输入gdb --version确认 gdb 可用若不可用检查Path是否包含x:\mingw32\bin核对launch.json中preLaunchTask的值必须与tasks.json中label的值完全一致均为C/C: gcc.exe 生成活动文件确认已安装 VScode 的「C/C」扩展由 Microsoft 提供安装后重启 VScode 再试。2.4 常见错误速查表为方便快速定位问题下表汇总了配置 VScode mingw32 环境时最常见的 5 类错误包含错误现象、可能原因和快速解决方法。错误现象可能原因快速解决方法编译时报gcc 不是内部或外部命令mingw32 的bin目录未加入系统环境变量Path或添加后未重启 VScode将x:\mingw32\bin加入Path完全关闭并重新打开 VScode再运行gcc --version验证程序输出中文显示为乱码源码为 UTF-8 编码而 Windows 控制台默认使用 GBK 编码在tasks.json的args中追加-fexec-charsetGBK或将源码另存为 GBK 编码调试时提示找不到gdb.exemiDebuggerPath指向的gdb.exe不在环境变量中在终端运行gdb --version确认可用若不可用在launch.json中填写gdb.exe的完整路径调试时报preLaunchTask任务不存在launch.json中preLaunchTask的值与tasks.json中label不一致核对两处名称完全一致均为C/C: gcc.exe 生成活动文件编译时报找不到头文件如stdio.h未安装 C/C 扩展或编译器路径配置错误安装 Microsoft 的「C/C」扩展并重启 VScode确认tasks.json中command为gcc.exe
返回列表