本文为原链的镜像链接,更新可能不及时,如有能力,请访问原始链接。
文章目录
- 参考
- 安装
- 安装 vscode 和插件
- 配置 mingw
- 下载 mingw 编译链
- 配置环境变量
- 配置 vscode 环境
- 测试
参考
- 基于 VS Code + MinGW-w64 的 C 语言/C++简单环境配置,专致小白
安装
环境:Win10 21H2 19044.1381
+ mingw
+ vscode 1.74.3 + C/C++ Extension Pack
插件
国内镜像盘: 链接 密码:1dcs
简单来说共分为 4 步
- 下载
mingw
,vscode
和插件
并安装 - 添加
mingw
编译链到系统环境变量Path
- 拷贝
tasks.json
、launch.json
到要运行的代码目录.vscode
文件夹中 - 修改
tasks.json
、launch.json
中gcc
、g++
、gdb
路径
安装 vscode 和插件
- 下载 vscode 并安装
- 安装
C/C++ Extension Pack
插件
配置 mingw
下载 mingw 编译链
在此处下载 windows 编译链,编译链命名方式如:系统-线程模型-异常处理模式
- 系统
- x84_64 64 位可执行文件
- i686 32 位可执行文件
- 线程模型
- win32
- posix
- 异常处理方式
- …
根据自己的系统选择,推荐下载最新的,我这里是 64 位系统,线程模型选择 win32,异常模式随便选
选择 x86_64-win32-seh
需注意:win 下如线程模式使用 posix,会造成 powershell 下无法通过编译链生成 a.exe,推荐使用如下图中工具链
配置环境变量
将在下载 mingw 编译链中下载的编译链解压到路径 xxx 下,记住该路径
windows 键 + R
打开 运行,输入 sysdm.cpl
,回车进入
点击 高级
点击 环境变量 添加 mingw 工具链路径到 Path
下
下载后解压的工具链路径:
推荐在系统变量中的 Path 下添加刚刚下载的编译链的路径 xxx + \bin
比如你下载后解压的路径为 C:\1\mingw64
,那么在此处就要添加 C:\1\mingw64\bin
环境变量配置:添加后不要忘记点确定
配置 vscode 环境
将下述代码保存为launch.json
或者直接使用镜像中的 .vscode
中的launch.json
,修改配置文件中 launch.json
的 gcc
、g++
、gdb
路径
将 launch.json
中 miDebuggerPath
修改为你本地 mingw
中的 gdb
路径
{
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\1\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
],
"version": "2.0.0"
}
将下述代码保存为tasks.json
或者直接使用镜像中的 .vscode
中的tasks.json
,
将 tasks.json
中的 cbuild
中 command
改为你本地 gcc
的路径,cppbuild
中 command
改为你本地 g++
的路径
{
"tasks": [
{
"type": "cbuild",
"label": "C/C++: gcc.exe 生成活动文件",
"command": "C:\\1\\mingw64\\bin\\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "gdb调试器生成的任务。"
},
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "C:\\1\\mingw64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$g++"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "gdb调试器生成的任务。"
}
],
"version": "2.0.0"
}
最终 Vscode 工程目录结构如下,测试代码来自 hello-algo,在此感谢大佬 @Krahets
C:\Users\Administrator\Desktop\TEST\code>tree /F
文件夹 PATH 列表
卷序列号为 DE24-5DAC
C:.
├─.vscode
│ launch.json
│ tasks.json
│
└─codes
├─c
│ │ CMakeLists.txt
│ │
│ ├─chapter_array_and_linkedlist
│ │ array.c
│ │ CMakeLists.txt
│ │ linked_list.c
│ │
│ ├─chapter_computational_complexity
│ │ CMakeLists.txt
│ │ time_complexity.c
│ │ worst_best_time_complexity.c
│ │
│ ├─chapter_sorting
│ │ bubble_sort.c
│ │ CMakeLists.txt
│ │ insertion_sort.c
│ │
│ ├─chapter_stack_and_queue
│ │
│ ├─chapter_tree
│ │ binary_search_tree.c
│ │ binary_tree.c
│ │ binary_tree_bfs.c
│ │ binary_tree_dfs.c
│ │ CMakeLists.txt
│ │
│ └─include
│ CMakeLists.txt
│ include.h
│ include_test.c
│ list_node.h
│ print_util.h
│ tree_node.h
│
├─cpp
│ │ .gitignore
│ │ CMakeLists.txt
│ │ Makefile
│ │
│ ├─chapter_array_and_linkedlist
│ │ array.cpp
│ │ linked_list.cpp
│ │ list.cpp
│ │ my_list.cpp
│ │
│ ├─chapter_computational_complexity
│ │ leetcode_two_sum.cpp
│ │ space_complexity.cpp
│ │ time_complexity.cpp
│ │ worst_best_time_complexity.cpp
│ │
│ ├─chapter_hashing
│ │ array_hash_map.cpp
│ │ hash_map.cpp
│ │
│ ├─chapter_searching
│ │ binary_search.cpp
│ │ hashing_search.cpp
│ │ linear_search.cpp
│ │
│ ├─chapter_sorting
│ │ bubble_sort.cpp
│ │ insertion_sort.cpp
│ │ merge_sort.cpp
│ │ quick_sort.cpp
│ │
│ ├─chapter_stack_and_queue
│ │ array_queue.cpp
│ │ array_stack.cpp
│ │ deque.cpp
│ │ linkedlist_queue.cpp
│ │ linkedlist_stack.cpp
│ │ queue.cpp
│ │ stack.cpp
│ │
│ ├─chapter_tree
│ │ binary_search_tree.cpp
│ │ binary_tree.cpp
│ │ binary_tree_bfs.cpp
│ │ binary_tree_dfs.cpp
│ │
│ └─include
│ include.hpp
│ ListNode.hpp
│ PrintUtil.hpp
│ TreeNode.hpp
│ ...
│
├─java
│ ...
├─python
│ ...
├─rust
│ ...
├─swift
│ ...
C:\Users\Administrator\Desktop\TEST\code>
测试
首先,通过 Vscode 打开工程(含有 .vscode
文件夹的目录),在打开 c
文件,根据右上角选择调试还是运行,也可以通过快捷键调试(F5)
如下为调试过程中的截图:
gdb
调试 c
文件
文章来源:https://uudwc.com/A/gVxMG
gdb
调试 cpp
文件
文章来源地址https://uudwc.com/A/gVxMG