VSCode编译调试单个C++程序---配置JSON文件方式

文章参考链接
链接1-文章
链接2-视频
参考链接可完成 VSCode软件 和 MinGW 的安装 与 C++环境配置

文章前提

VSCode软件和MinWGW已经安装完毕。

正文

  1. 在英文路径目录下新建一个文件夹,取英文名(此处取名 temp),通过VSCode打开。
配置JSON文件方式,仅对该文件夹目录下的文件有效,故选择一个文件夹作为模板文件夹,复制使用,以避免重复配置
  1. 在 temp 文件夹下新建一个.cpp文件,取英文名(此处取名 main.cpp),写好测试程序。下图为一示例
    在这里插入图片描述
  2. 找到菜单栏,依次点击,运行-启动调试,依次选择 c++(GDB/LLDB) 、g++.exe,等待软件运行一会儿
  3. 稍后 temp 文件夹下将自动新建一个 .vscode 文件夹,内含 launch.json 和 tasks.json 两个文件
    在这里插入图片描述

以上两个JSON文件的内容都需要修改,但还缺少最后一个JSON文件,故暂时不修改。等创建完第三个JSON文件后一起修改三个JSON文件的内容。

  1. 创建第三个JSON文件 c_cpp_properties.json
方式1:自己在 .vscode 文件夹下新建一个文件,取名 c_cpp_properties.json
方式2:按Ctrl+shift+p,输入c/c++ config,选择Edit Configurations(JSON),软件将自动在 .vscode 文件夹下新建一个 c_cpp_properties.json 文件
  1. 若此时调试程序未关闭,则点击红色方框关闭
    在这里插入图片描述

  2. 分别复制粘贴以下三个JSON文件的内容。参照文章开头链接 并 根据自己的配置环境进行适当修改
    launch.json

{  
    "version": "0.2.0",  
 "configurations": [  
        {  
         "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示  ,即甲虫窗口的下拉菜单中显示
            "type": "cppdbg",       // 配置类型,这里只能为cppdbg  
         "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)  
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径  
            "args": [],             // 程序调试时传递给程序的命令行参数,一般设为空即可  
            "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false  
         "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录  
            "environment": [],  
         "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台  
            "MIMode": "gdb",  
            "miDebuggerPath": "D:\\CodingTools\\MinGW\\mingw64\\bin\\gdb.exe", // miDebugger的路径,注意这里要与自己的MinGw的路径对应  
            "preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc,与task.json 中的lable保持一致 
         "setupCommands": [
                {   
		    "description": "Enable pretty-printing for gdb",  
                    "text": "-enable-pretty-printing",  
                    "ignoreFailures": true  
                }  
            ]  
        }  
    ]  
}

tasks.json

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "g++", //这里注意一下,见下文解释
            "command": "D:\\CodingTools\\MinGW\\mingw64\\bin\\g++.exe",    //注意修改!!!
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-ggdb3",   // 生成和调试有关的信息
                "-Wall",    // 开启额外警告
                "-static-libgcc",   // 静态链接
                "-std=c++17",       // 使用c++17标准
                "-finput-charset=UTF-8",    //输入编译器文本编码 默认为UTF-8
                "-fexec-charset=GB18030",   //输出exe文件的编码
                "-D _USE_MATH_DEFINES"
            ],
            "options": {
                "cwd": "D:\\CodingTools\\MinGW\\mingw64\\bin"      //注意修改!!!
            },
            "problemMatcher": [
                "$gcc"
            ],
            "presentation": {
                "echo": true,
                "reveal": "always", // 在“终端”中显示编译信息的策略,可以为always,silent,never
                 "focus": false,
                 "panel": "shared" // 不同的文件的编译信息共享一个终端面板
            },
        }
    ]
}


tasks.json 文件里的 “label”: “g++”

launch.json 文件里的 “preLaunchTask”: “g++”
二者内容要保持一致,此时两者都改为了 g++

c_cpp_properties.json

{
   "configurations": [
       {
           "name": "MinGW64",
           "intelliSenseMode": "gcc-x64",
           "compilerPath": "D:\\CodingTools\\MinGW\\mingw64\\bin\\gcc.exe", // 修改为自己的MinGW路径设置
           "includePath": [
               "${workspaceFolder}"
           ],
           "cppStandard": "c++17"
       }
   ],
   "version": 4
}

  1. 插入断点调试方式有些许区别

    1. 先在程序中插入断点。再找到菜单栏,依次点击,运行-启动调试,开始程序的调试。如下图所示
      在这里插入图片描述
      2.先找到菜单栏,依次点击,运行-启动调试,开始程序的调试。但此时的各调试按钮未完全显示,如下图所示。点击绿色的刷新按钮即可显示上图。在这里插入图片描述
  2. 调试结束后,点击红色方框来结束调试,清除断点

VSCode 有多种程序调试方式,根据学习过程再不断完善

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值