02-vscode编译调试单个源文件程序

vscode+mingw搭建C/C++环境系列

01.vscode+mingw搭建编译调试环境

02-vscode编译调试单个源文件程序

03-vscode编译调试多个源文件程序

04-vscode搭建cmake的编译环境


一、简述

前面的文章中已经说明如何搭建vscode和mingw的开发环境,本文继续上一节内容,使用vscode编译调试一个简单的源文件程序。

二、vscode编译调试单个源文件

1.创建单个源文件程序

在电脑磁盘上创建一个TEST的文件夹,使用VSCode打开文件夹,在空白处 右击新建文件main.cpp
在这里插入图片描述
编写一段测试C++代码

#include <iostream>
#include <sstream>

int add(const int &var1,const int& var2)
{
    
    
    return var1+var2;
}

int main(int argc,char** argv)
{
    
    
   std::cout<<"VsCode Test"<<std::endl; 
   int var1=10,var2=20;
   std::ostringstream ss;
   ss<<"var1+var2="<<add(var1,var2)<<"\n";
   std::cout<<ss.str().c_str();
   return 0;
}

2.调试运行程序

Run Code

如图所示:将鼠标的焦点放到要编译运行的源代码文件上,在窗口的右上角区域有个右三角的图标,下拉选择Run Code,直接编译运行程序,Run Code 选项依赖于vscode的settings.json文件,在后面的多文件编译运行的时候会进行说明,
在这里插入图片描述
编译运行结果如下: 使用了g++命令进行了编译运行
在这里插入图片描述

调试C/C++文件

先在代码中给程序添加断点,在代码处鼠标右击添加断点或者使用快捷键F9添加断点,然后在窗口的右上角区域有个右三角的图标,下拉选择调试C/C++代码,调试源文件
在这里插入图片描述
选择对应的调试器,使用之前安装的MinGW的路径的g++程序,随后启动调试。
在这里插入图片描述
如图所示,左边部分显示调用堆栈和局部变量信息,
在这里插入图片描述
调试的过程中会自动生成tasks.json文件,默认生成的tasks.json文件如下,后面再多文件编译调试的过程中会说明该文件的一些字段含义。

{
    
    
    "tasks": [
        {
    
    
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",   //调试的时候要与launch.json中的preLaunchTask保持一致
            "command": "C:\\Users\\Admin\\AppData\\Local\\Programs\\mingw64\\bin\\g++.exe", //编译器所在的位置
            "args": [   //编译参数 g++ -g main.cpp  -o ${fileDirname}\\main.exe
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
    
    
                "cwd": "${fileDirname}"   //运行时切换到当前文件夹目录
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
    
    
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

猜你喜欢

转载自blog.csdn.net/qq_37103755/article/details/128442525