欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Windows下利用VSCode调试C/C++代码

程序员文章站 2024-02-29 12:36:10
...

Windows下利用VSCode调试C/C++代码

概述:
本人另一篇关于再Windos下使用VSCode远程调试Linux服务器C/C++代码的文章如下,不过由于Linux服务端配置有点问题,老是最后报错,有点气人,百度了也没找到好的解决方法。还是这篇比较好。
远程Linux的文章链接:

https://blog.csdn.net/weixin_44517656/article/details/109339071

1 下载MinGW编译器
这里不建议去官网下载,太慢了,并且报错。

http://www.mingw.org/	//官网链接

我自己已下载的安装包(建议这种):

//百度网盘链接
https://pan.baidu.com/s/1Svg5Hm-L3POvuLehXY2tuQ
//密码
aaaa

2 将bin目录下添加到环境变量
右击电脑-属性-高级设置-环境变量-双击Path-新建环境变量即可。
Windows下利用VSCode调试C/C++代码
Windows下利用VSCode调试C/C++代码

3 测试MinGW是否下载成功
win+r输入cmd,打开命令行。输入以下命令即可打印相应版本信息。

gcc -v
g++ -v

4 下载VSCode
很简单,不多说,注意的是最好在安装过程中,他会建议我们Add即添加对应的东西,就是我们右键目录时可以以VSCode打开,我们全部勾上即可。

https://code.visualstudio.com/

5 打开工作目录并下载相应插件
新建文件夹,右击以VSCode方式打开,点击左下角的商城然后输入C/C++下载C/C++扩展,然后再下载Chinese中文插件。
Windows下利用VSCode调试C/C++代码
Windows下利用VSCode调试C/C++代码

6 在当前工作目录添加一个.cpp文件
写入自己的hello world。
Windows下利用VSCode调试C/C++代码

7 添加编译(tasks),调试(launch),属性的json文件
按下F5启动调试(也可以点击上方的运行-启动调试),选择GDB那个。自动创建了一个新的launch.json文件(内容最后给出),保存,再运行,弹出错误让我们配置任务,我们点击配置任务后,自动创建一个tasks.json文件(内容最后给出),最后需要我们人为手动在.vscode目录下新建一个json文件,名字叫c_cpp_properties.json。
Windows下利用VSCode调试C/C++代码

往后其它项目使用时只需要修改项目的一些路径即可,并且每个文件上方已经标记了我们需要修改哪些东西。

tasks.json内容:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format

    // tasks只需要改command和cwd即可,-o的参数最好生成在.cpp文件当前目录.
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell", //类型
            "label": "main", //任务名称 
            "command": "D:\\English_Software\\MinGW\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe", //命令,Windows需要修改对应的编译器路径,但是添加了环境变量只写g++即可
            "args": [
                "-g",
                "${file}",

                "-I",
                "${fileDirname}\\include\\spdlog",

                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",//fileDirname指当前目录,fileBasenameNoExtension指可执行程序无后缀的字符串。该.exe路径可以任意指定
                "-ggdb3",//生成和调试有关的信息
                "-Wall",
                "-static-libgcc",//静态链接
                "-std=c++11",//使用c++11标准
                "-finput-charset=UTF-8",//输入编译器文本编码,默认为UTF-8
                //"-fexec-charset=GB18030",//输出的exe文件的编码(Window)
                "-D _USE_MATH_DEFINES"
            ],
            "options":{
                "cwd": "D:\\English_Software\\MinGW\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin" //command命令的路径
            },
            "problemMatcher": [
                "$gcc"
            ],
            "presentation": {
                "echo": true,
                "reveal": "always",//在终端中显示编译信息的策略,可以我ialways.silent.never
                "focus": false,
                "panel": "shared",//不同的文件的编译信息共享一个终端面板
                //"showReuseMessage": true,
                //"clear": false
            }
        },
    ]
}

launch.json内容:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387

    // launch需要改miDebuggerPath和program即可,但是需要注意preLaunchTask需要与任务的label相同,这样才可以调试对应的任务.
    "version": "0.2.0",
    "configurations": [
        {
            "name": "main", //名称随便取
            "type": "cppdbg", //调试类型
            "request": "launch", //请求配置类型
            "program": "${workspaceFolder}/main.exe", //可执行程序完整路径(包含程序名称),必须正确,否则无法调试可执行程序
            "args": [],
            "stopAtEntry": false,//程序调试时是否暂停在程序入口处
            "cwd": "${workspaceFolder}", //调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录
            "environment": [],
            "externalConsole": true,//调试时是否显示控制台窗口,一般设为true显示控制台窗口,即cmd窗口
            "MIMode": "gdb",         //调试模式,一般是gdb
            "miDebuggerPath": "D:\\English_Software\\MinGW\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe", //调试路径,即gdb完整路径,Windows时需要配置环境变量,改成该Min路径
            "preLaunchTask": "main", //调试前开始执行的任务名称(与tasks.json中名称一致)
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            
            
        }
    ]
}

c_cpp_properties.json内容:

//本文一般只需要改编译的命令的路径

{
    "configurations": [
        {
            "name":"gdb",//或者MinGW64(WIndows编译器)
            "intelliSenseMode":"gcc-x64",
            "compileCommands": "D:\\English_Software\\MinGW\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",  //此文件一般只需改这里
            "includePath": [
                "${workspaceFolder}"
            ],
            "cppStandard": "c++11"
        }
    ],
    "version": 4
}

附上成功调试的结果:
一般我们不想要该窗口可将launch.json的externalConsole改成fasle即可,他将在终端中输出。
Windows下利用VSCode调试C/C++代码

实际上我也试过使用VSCode远程Linux主机调试,但是很多时候老是报错,很烦人,有时虽然能成功执行,但最后也报错,有时中途报错,但是生成的可执行文件又能运行。。。。很气人,这种情况大多数是和远程主机的权限和相应配置相关,很难搞,不行的话还是老老实实使用vim去编码吧。

相关标签: c++ windows