VSCode g++ 编译 gdb 调试单个或者多个文件

0 需要预先了解的知识

VSCode是一个代码编辑器,gcc和g++是GUN的C与C++的编译器。每一个源文件都是一个编译单元,在执行编译的时候一般有下面四步:

  1. 预处理,与“#”相关的一些指令,包括#include,#define等,进行简单的粘贴复制和替换,生成.i的文件。
  2. 将预处理后的.i文件,并转变成汇编语言,生成文件.s—汇编语言程序
  3. 将汇编程序语言转变成为目标代码(机器码)生成.o的文件,和一些连接器需要用到的重定向信息。
  4. 利用重定向信息将所有的可执行文件(所有编译单元).o连接成一个大的可执行程序.exe.

一、单个文件进行调试

1、在src文件夹下,编写程序。

 2、使用g++生成可执行文件

 

 可以看到src文件夹下生成了single_main.exe文件,并且在控制台中也可以执行。

3、自动生成lanuch.json和task.json配置文件,并使用VSCode进行调试

 点击创建launch.json文件,进入到了调试环境(在此之前需要打断点)。并且生成了launch.json和tasks.json配置文件。除此之外也自动生成了mian.exe,与在控制台使用g++生成的single_main.exe有所区别。

 

 并且调试过程能够顺利进行。

二、多文件调试

1、构建多个文件

在进行多文件调试之前,将上一步生成的.exe和配置文件launch.json和tasks.json删除。将swap函数的定义和声明分别放在swap.cpp和swap.h文件中。其结果如下:

 

 ​​​​

 2、使用g++将多个文件生成可执行代码

 

结果仍然能够准确执行。

3、使用Vscode进行调试

如单文件调试一样,会出现错误,且生成了launch.json。具体如下:

如上图所示,program就是我们所需要调试的程序。但是发现,fileDirname=main.cpp所在的文件夹即src下,fileBasenamenoextension=main,即找不到main.cpp。因此需要对program进行更改,由于已经使用g++生成了调试文件,所以需要将preLaunchTask注释掉,其他不动。结果如下:

对修改后的配置文件保存,并重新debuge,便能够正常运行,结果如下。

三、使用CMake进行多文件的编译

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值