VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法

VSCode对C++程序的多文件程序编译和调试

前言

最近在使用vscode进行C++的学习,发现编译多文件程序的时候通过F5(运行——启动调试)无法编译出可执行.exe文件,于是在进行了学习和尝试,目前可以编译和调试多文件程序了,参考视频

下文提到的cmake配置文件,大家如果需要可以去上面参考视频的博主的公众号"VSCode"回复cpp获取

程序

前提

vscode已经配置好mingw文件

单文件

本程序比较简单,是一个交换两个参数的程序

#include
using namespace std;
void swap(int &a,int &b)
{
    int temp;
    temp=a;
    a=b;
    b=temp;

}
int main(int argc,char **argv)
{

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

VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第1张图片
目前没有配置.json文件,先采用终端调试法用命令行,进行一下可执行文件的生成
命令行:
g++(编译器)
-g(生成可调式信息)
./main.cpp(需要编译的文件名和位置)
-o(为生成可执行文件命名)
kk(生成的可执行文件的名称)
./kk.exe 执行可执行文件
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第2张图片
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第3张图片

终端调试法

把上面的main.cpp修改成多文件模式

修改后的程序

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;

}

main.cpp

#include
#include"swap.h"
using namespace std;
int main(int argc,char **argv)
{

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

VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第4张图片

生成可执行文件

在这里插入图片描述
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第5张图片
mytest.exe是可执行也可调试的文件,调试需要.json文件
点击运行,下图红框
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第6张图片
点击运行和调试后选择:
C++(GDB/LLDB)
g++.exe——生成和调试活动文件

这个时候会显示错误,系统会给你配置一些.json文件,我们需要对这些.json文件进行修改才能进行调试
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第7张图片
如下图进行修改
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第8张图片
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第9张图片
再按F5就可进行调试和运行了,但是目前的执行不能生成外部的执行窗口,
把launch.json进行如下修改就可以了 false改成true,再main.cpp下按F5就可以执行mytest.exe程序了,或者打断点也可进行调试
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第10张图片

Cmake调试法

配置cmake文件

将文件路径配置到环境变量中
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第11张图片
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第12张图片
打开控制面板——系统与安全——系统——高级系统设置
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第13张图片
只需要修改用户变量就可以了
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第14张图片
编辑——新建,把上面的cmake文件下的bin文件路径添加到环境变量中,添加好了后就按确定——确定——确定
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第15张图片

在vscode中安装Cmake工具和Cmake tools工具

VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第16张图片
现在准备工作就做好了

写CMakesLists.txt文件

CMakeLists.txt文件名不能写错,一定得是这个!!!
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第17张图片
MYwork是一个随便命名的工程名(我目前还没有发现在哪里使用)
Cmake_swap是我们通过这种方法将会生成的可执行文件名
写好CMakeLists.txt文件后按ctrl+shift+p键
选择CMake configure
选择GCC8.2.0(可能版本不一样,差不多就是选一个gcc的编译器VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第18张图片
)
然后生成了一个build文件夹
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第19张图片
目前还没有生成我们的Cmake_swap.exe可执行文件的
然后通过终端进入build文件夹
然后输入 cmake …(cmake空格两点 这里显示成3点了)
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第20张图片
然后输入windows下的make应用程序 mingw32-make.exe
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第21张图片
然后你会发现在build目录下生成了我们的可执行文件Cmake_swap.exe
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第22张图片
调试这个可执行文件,需要修改launch.json文件
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第23张图片
然后在main函数下按F5可进行exe文件执行,如果需要窗口暂停需要在main函数 中的return 0前加system(“pause”);加了之后要重新在终端执行一下cmake的程序mingw32-make.exe更新一下Cmake_swap.exe文件
VSCode对C++程序的多文件程序编译和调试,终端调试和Cmake调试法_第24张图片
我太啰嗦了!!因为希望后面我自己忘了的时候能够看懂,所以写的很详细啦
给一个

你可能感兴趣的:(c++学习手册,VSCODE学习手册,c++,vscode,cmake)