本文环境:
- OS:Windows 11
- IDE:VS Code
- MSYS2 - UCRT
装好VS Code后,要用它来开发C/C++的话,需要装好C/C++用的编译器,然后再配置一下VS Code就可以一键调试了,
我这里使用MSYS2来提供Windows下的gcc/g++编译器,
安装VS Code
安装MSYS2和gcc/g++
也可以直接点开下面的官网链接,那就是个安装教程,只不过是英文,fufu,
获取安装包
访问官网,中间那个红色的Installation下面有个链接,就是windows可以用的安装包,
点击下载,
安装部分
安装MSYS2
双击运行安装包,第二步如果没有啥其他需求的话可以不用改路径,需要的话可以自己倒腾倒腾,
默认的安装路径是C:\mysys64
,后续需要把可执行文件添加到环境变量的,就用这个路径,
再点下一步,Start Menu shortcuts这里不用改,这里是在开始菜单里快捷方式的文件夹名,下一步就好,
然后它就开始安装了,等它装好就好,我的操作录制视频里面装了几分钟,我没剪辑的,可以自己跳一下进度条,
装好之后,到了Finished,把那个Run MSYS2 now.取消勾选,因为后面要手动打开UCRT的终端,
这里我们只用到MSYS2的UCRT的东西,
安装MSYS2 UCRT64 的 gcc 和 gdb
在开始菜单的最近添加里能看到MSYS2 UCRT64(有些人可能把推荐的项目关了,不过会关闭这个的人应该也知道去哪里找这个东西了吧,我这就不赘述了),打开这个,会弹出一个新的终端,
然后复制下面的两行命令,在这个终端里不要用快捷键粘贴,右击鼠标选择Paste来粘贴,
然后回车执行命令(这两个命令需要联网,是从网上下载安装包安装的),等一下下会显示一个确认输入,这时候输入y
,大小写都行,然后回车,等这个装好之后还有第二个包,也要输入一次y
,等它装完,如果没报错没报error就可以关掉它了
pacman -S mingw-w64-ucrt-x86_64-gcc
pacman -S mingw-w64-ucrt-x86_64-gdb
把CURT的gcc/gdb添加到PATH
关于Win配置环境变量参考:Windows配置环境变量 - 柒柒の窝
改系统变量或者用户变量都行,只是改用户变量的话就只有当前用户生效,而系统变量对所有用户生效,
我这里改了系统变量,找到Path,之前安装的时候路径是C:\mysys64
,那么PATH路径里面就加一行C:\msys64\ucrt64\bin
就好,
确定三次直到关掉系统属性窗口后,一般就已经生效了,按Win
+r
输入cmd
然后回车启动一个新的win命令行,输入下面这两行命令,正常的话应该能看到gcc和gdb版本号,如果没有的话可以重启一下系统,
gcc --version
gdb --version
配置vscode开发调试C/C++
一般使用vscode做C/C++开发,相关的配置文件是基于当前工作目录的,
例如我这里演示的话,以位于C盘根目录的my-c-cpp-code文件夹为例,路径是C:\my-c-cpp-code
,
那么不论我的代码源文件是直接在这个文件夹下面,比如C:\my-c-cpp-code\main.c
,还是在子文件夹里面,例如C:\my-c-cpp-code\learn-1\main.c
,或是C:\my-c-cpp-code\learn-2\main.c
,
vscode对于它们的编译和调试,用到的配置文件都是应该位于C:\my-c-cpp-code\.vscode
文件夹下的,.vscode
文件夹就在工作目录C:\my-c-cpp-code
下
对于C/C++,主要是用到两个文件,launch.json
和tasks.json
,按照上面说的,
我这里的工作目录是C:\my-c-cpp-code
,那么这两个文件的路径就是C:\my-c-cpp-code\.vscode\launch.json
和C:\my-c-cpp-code\.vscode\tasks.json
,
我把这两个文件内容贴这里,可以直接复制粘贴,如果上面安装gcc、gdb的时候没有改动路径,那么这个配置文件也可以直接照搬就能用不需要改动,
然后装三个插件
然后我再贴个配好了之后有两个源文件的成果界面截图,至此看得懂的看图文应该就能配置出来了,看不懂就看后面视频跟着搞叭,
launch.json (如果前面安装的时候改了路径,就要改动第17行的路径到对应的位置)
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.exe",
"args":
[],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:/msys64/ucrt64/bin/gdb.exe",
"preLaunchTask": "g++",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
task.json (如果前面安装的时候改了路径,就要改动第8行和第19行的路径到对应的位置)
{
"version": "2.0.0",
"tasks":
[
{
"type": "shell",
"label": "g++",
"command": "C:/msys64/ucrt64/bin/g++.exe",
"args":
[
"-std=c++11",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.exe"
],
"options":
{
"cwd": "C:/msys64/ucrt64/bin/"
},
"problemMatcher":
[
"$gcc"
]
}
]
}
操作录屏视频
安装MSYS2
配置CURT环境变量
配置vscode开发调试C/C++
额外的关于调试功能
当你在那一行打了断点,并且以调试运行(快捷键F5
)的方式运行程序而不是直接运行(快捷键Shift
+F5
),那么就会在运行到断点处停下来,
此时的程序状态就是,在断点行之前的已经执行完了(注意遵循程序控制流,是指在此之前的程序流,而不是此文件中断点行前的所有代码行),并且断点行还没开始执行,
调试过程中可以通过运行和调试的功能侧栏进行变量的查看,甚至可以修改变量,
具体使用直接看视频吧,
视频演示:
资源列表
以下所列是相对于我的博客分享资源中
v_2.0
的资源位置,具体使用方法详见 博客分享资源
MSYS2 x86 64位 exe安装包
- 2024-11-18-配置vscode开发调试C-C/msys2-x86_64-20240727.exe