配置vscode开发调试C C++

本文环境:

  • OS:Windows 11
  • IDE:VS Code
  • MSYS2 - UCRT

装好VS Code后,要用它来开发C/C++的话,需要装好C/C++用的编译器,然后再配置一下VS Code就可以一键调试了,

我这里使用MSYS2来提供Windows下的gcc/g++编译器,

安装VS Code

参考:安装VS Code - 柒柒の窝

安装MSYS2和gcc/g++

也可以直接点开下面的官网链接,那就是个安装教程,只不过是英文,fufu,

官网链接:https://www.msys2.org/

或见资源列表中分享的指定资源名,若使用分享的安装包则可以直接跳转至安装部分

获取安装包

访问官网,中间那个红色的Installation下面有个链接,就是windows可以用的安装包,

点击下载,

2024-11-18-22-33-35

安装部分

安装MSYS2

双击运行安装包,第二步如果没有啥其他需求的话可以不用改路径,需要的话可以自己倒腾倒腾,

默认的安装路径是C:\mysys64,后续需要把可执行文件添加到环境变量的,就用这个路径,

再点下一步,Start Menu shortcuts这里不用改,这里是在开始菜单里快捷方式的文件夹名,下一步就好,

然后它就开始安装了,等它装好就好,我的操作录制视频里面装了几分钟,我没剪辑的,可以自己跳一下进度条,

2024-11-19-10-41-55

2024-11-19-10-42-29

2024-11-19-11-05-26

2024-11-19-11-09-33

装好之后,到了Finished,把那个**Run MSYS2 now.**取消勾选,因为后面要手动打开UCRT的终端,

这里我们只用到MSYS2的UCRT的东西,

2024-11-19-11-13-34

安装MSYS2 UCRT64 的 gcc 和 gdb

在开始菜单的最近添加里能看到MSYS2 UCRT64(有些人可能把推荐的项目关了,不过会关闭这个的人应该也知道去哪里找这个东西了吧,我这就不赘述了),打开这个,会弹出一个新的终端,

然后复制下面的两行命令,在这个终端里不要用快捷键粘贴,右击鼠标选择Paste来粘贴,

然后回车执行命令(这两个命令需要联网,是从网上下载安装包安装的),等一下下会显示一个确认输入,这时候输入y,大小写都行,然后回车,等这个装好之后还有第二个包,也要输入一次y,等它装完,如果没报错没报error就可以关掉它了

1
2
pacman -S mingw-w64-ucrt-x86_64-gcc
pacman -S mingw-w64-ucrt-x86_64-gdb

2024-11-19-11-14-06

2024-11-19-11-18-01

2024-11-19-11-20-10

把CURT的gcc/gdb添加到PATH

关于Win配置环境变量参考:Windows配置环境变量 - 柒柒の窝

改系统变量或者用户变量都行,只是改用户变量的话就只有当前用户生效,而系统变量对所有用户生效,

我这里改了系统变量,找到Path,之前安装的时候路径是C:\mysys64,那么PATH路径里面就加一行C:\msys64\ucrt64\bin就好,

2024-11-19-13-57-38

确定三次直到关掉系统属性窗口后,一般就已经生效了,按Win+r输入cmd然后回车启动一个新的win命令行,输入下面这两行命令,正常的话应该能看到gcc和gdb版本号,如果没有的话可以重启一下系统,

1
2
gcc --version
gdb --version

2024-11-19-13-59-51

配置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.jsontasks.json,按照上面说的,

我这里的工作目录是C:\my-c-cpp-code,那么这两个文件的路径就是C:\my-c-cpp-code\.vscode\launch.jsonC:\my-c-cpp-code\.vscode\tasks.json

我把这两个文件内容贴这里,可以直接复制粘贴,如果上面安装gcc、gdb的时候没有改动路径,那么这个配置文件也可以直接照搬就能用不需要改动,

然后装三个插件

2024-11-19-15-07-52

然后我再贴个配好了之后有两个源文件的成果界面截图,至此看得懂的看图文应该就能配置出来了,看不懂就看后面视频跟着搞叭,

2024-11-19-14-41-33

launch.json (如果前面安装的时候改了路径,就要改动第17行的路径到对应的位置)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"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行的路径到对应的位置)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
"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),那么就会在运行到断点处停下来,

此时的程序状态就是,在断点行之前的已经执行完了(注意遵循程序控制流,是指在此之前的程序流,而不是此文件中断点行前的所有代码行),并且断点行还没开始执行,

调试过程中可以通过运行和调试的功能侧栏进行变量的查看,甚至可以修改变量,

具体使用直接看视频吧,

2024-11-19-14-48-46

视频演示:

资源列表

以下所列是相对于我的博客分享资源中v_2.0的资源位置

具体使用方法详见 博客分享资源


  • MSYS2 x86 64位 exe安装包
    • 2024-11-18-配置vscode开发调试C-C/msys2-x86_64-20240727.exe

发布于

2024-11-18

更新于

2024-11-20

许可协议

评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...