【VS Code】2022 Visual Studio Code C++及Debug配置(win10)

(更新)注意通过msys2下载MinGW后在debug的时候可能会有各种问题,目前推荐直接下载MinGW,具体教程可以看youtube ProgrammingKnowledge的channel,油管上看了一圈感觉是最详细全面且最新的了,阿b上也有人搬运了这个视频

见本文底部,视频里包括了debug的部分。compiler和debug的json配置依然可以参考本文下方的json file.

一、首先用msys2下载mingw-w64

(1)网址:mingw-w64.org

(2)侧边栏点击downloads下载msys2,下载后安装(自定义路径),运行

(3)msys2中输入命令:pacman -Syu (注意大小写 输入后回车),弹出问题后输入y回车

 

 

(4)最后弹出error也不用担心,Confirm to proceed输入y即可,完成后关闭窗口

(5)然后再次从开始菜单打开MSYS2 MSYS,输入pacman -Su, 输入y再次安装,完成后再次关闭Terminal

(6)开始菜单中打开MSYS2 MinGW 64-bit,输入pacman -Ss gcc,回车,然后找到这里

 

 

(7)记住红框圈出的部分(C,C++,OpenMP),输入clear清空窗口,然后输入 pacman -S mingw-w64-x86_64-gcc回车安装

(8)安装完后输入clear清空终端,分别输入gcc --version和g++ --version,进行版本查看

(9)再次clear终端,输入pacman -Ss gdb回车,找到这一项:

 

 

 同样记住前面的gdb名称并copy

(10)clear,然后输入pacman -S mingw-w64-x86_64-gdb回车安装

(11)安装完成后clear,并输入gdb --version查看版本。

二、VS CODE C++环境配置

(1)插件中搜索并下载C/C++和Code Runner,安装后重启一下VS CODE

(2)File-Add Folder to Workspace创建C++代码工作空间

(3)在工作空间中创建Hello World文件夹和Hello World.cpp文件

(4)View-Command Palette,输入c/c++:edit,选择UI进入设置,

找到C++ standard项,选择最新的gnu++(目前是gnu++20),完成后关闭设置,重启VSCODE

 

(会发现Workspace中多了一个.vscode文件夹,里面有c_cpp_properties.json文件)

 

 (5)点击Terminal-Configure Default Build Task,选择gnu c++ compiler,即g++项,

(6)上一步选择后.vscode下会出现tasks.json,进入json文件修改“args”中的“-g”改为“-g3”,

然后添加一个参数“-Wall”(如果创建了变量但没有使用会提示)

完成后重启VS CODE

(7)点击Terminal-Run Build Task, 会产生可执行文件.exe,

(8)打开终端 cd "Hello World.exe"进入文件夹后输入"Hello World.exe" 文件中含空格所以要加引号

(9)打开tasks.json,复制“tasks”:[ ]中括号中的内容,在中括号中粘贴

将新粘贴字段type:改为"shell",comman后更改如下:

 

 

 

前面的是自己的g++路径

解释: -g3编译器创建可执行文件并附带最大调试信息(maximum debug information)

${file} 我们要编译的文件名和路径

-o 执行文件 后+文件名

-o后面的是可执行文件的名称及路径 分号前用于生成可执行文件 分号后执行该文件

输入时注意空格

然后删除这个type"shell"中的args部分和group部分,最后如下:

 

 

 (10)保存后回到Hello World.cpp,删除exe文件,点击Terminal-Run Task,点击g++的项,可以成功运行即可

三、Debug配置

(1)点击左侧边栏debug按钮,点击Run and Debug,选择GDB/LLDB,然后点击第一个g++

(这里没出来也不要紧直接配置launch.json文件即可)

(2).vscode下launch.json文件,如果(1)出来了就会自动生成,没出来可以手动创建,内容如下:


{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name":"g++.exe - Build and debug active file",
            "type": "cppdbg",//配置类型,只能为cppdbg
            "request": "launch",//请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",//调试程序的路径名称
            "args": [],//调试传递参数
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,//true显示外置的控制台窗口,false显示内置终端
            "MIMode": "gdb",
            "miDebuggerPath": "I:/Environments/mingw64/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}
 

可以自己配置

StopAtEntry: 点击debug后程序将在开始处停止(主函数处)

(3)tasks.json


{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "I:\\Environments\\mingw64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g3",
                "-Wall",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        },
        {
            "type": "shell",
            "label": "Run C/C++ Program: g++.exe",
            "command": "I:\\Environments\\mingw64\\bin\\g++.exe -g3 -Wall \"${file}\" -o \"${fileDirname}\\${fileBasenameNoExtension}.exe\" ;\"${fileDirname}\\${fileBasenameNoExtension}.exe\"",
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

(4)debug界面:

 记得程序修改后debug前要重新生成可执行文件!

 

 

mysy2版流程参考了Youtube LearningLad的配置视频,详见https://www.youtube.com/watch?v=rgCJbsCSARM,注意视频中配置tasks时&&符号现在会报错,需要改成;分号

目前推荐直接下载MinGW,教程见youtube的ProgrammingKnowledge:https://www.youtube.com/watch?v=uFydSHo4LcM&t=1268s,阿b也有人搬运了这个视频https://www.bilibili.com/video/av253852669

posted @ 2022-04-17 19:32  ka2uha  阅读(2460)  评论(0)    收藏  举报