总体认识

vscode中有两个配置文件非常关键,launch.json、tasks.json,要想理解这两个文件的作用,首先需要理解
• 一个C++是如何被编译的;
• 如何用CMake构建多文件大型程序。

launch.json是调试运行一个已经编译好的程序,而调试运行的前提是编译整个项目,这正是tasks.json的任务,tasks.json调用CMake命令才能编译多文件项目,下面具体来看

实操演练

1)搭建环境:

windows桌面点击shit+右击 Windows PowerShell

输入gcc g++ cmake 看是否显示如下,如果是的,进入步骤2

vscode创建运行编译打包python_可执行文件

2)安装mingw-w64编译器(GCC for Windows 64 & 32 bits)、Cmake工具(选装)

vscode创建运行编译打包python_g++_02


添加环境变量

vscode创建运行编译打包python_可执行文件_03


3)再次运行第 1 步骤操作 显示如下,说明环境配置成功

vscode创建运行编译打包python_json_04


代码:
mian.cpp

#include <iostream>
#include"swap.h"
using namespace std;



int main()
{
    int val1=10;
    int val2=20;
    cout<<"before swap"<<endl;
    cout<<"val1="<<val1<<endl;
    cout<<"val2="<<val2<<endl;
    swap(val1,val2);
    
    cout<<"after swap"<<endl;
    cout<<"val1="<<val1<<endl;
    cout<<"val2="<<val2<<endl;
    return 0;
}

swap.h

void swap(int &a ,int &b);

swap.cpp

#include "swap.h"
void swap(int &a ,int &b)
{
    int temp;
    temp=a;
    a=b;
    b=temp;
}

基于 g++ 命令
•g++编译单文件,生成带调试信息的可执行文件

g++ -g main.cpp -o my_single_swap
# -g 生成带调试信息的可执行文件
# -o 指定生成可执行文件的名字

•g++编译多文件,生成带调试信息的可执行文件

g++ -g main.cpp swap.cpp -o my_multi_swap
# -g 生成带调试信息的可执行文件
# -o 指定生成可执行文件的名字

1)如何生成launch.json文件

vscode创建运行编译打包python_可执行文件_05


vscode创建运行编译打包python_g++_06

vscode创建运行编译打包python_g++_07


上述修改后,就可以实现通过g++方式是实现多文件的debug调试了基于CMake的方式

1)创建CMakeLists.txt文件

vscode创建运行编译打包python_g++_08


2)点击 shift+ctrl+p

vscode创建运行编译打包python_可执行文件_09


vscode创建运行编译打包python_json_10

3)执行上述步骤会生成build文件夹

vscode创建运行编译打包python_可执行文件_11


4)执行如下操作,出现如下 说明以上步骤操作正常

vscode创建运行编译打包python_json_12


5)

vscode创建运行编译打包python_g++_13


6)修改launch.json文件 可以按住F5运行到断点处

vscode创建运行编译打包python_g++_14

vscode创建运行编译打包python_json_15

那么如何可以代码修改后,直接生效?

1)

vscode创建运行编译打包python_g++_16

vscode创建运行编译打包python_可执行文件_17