0 需要预先了解的知识
VSCode是一个代码编辑器,gcc和g++是GUN的C与C++的编译器。每一个源文件都是一个编译单元,在执行编译的时候一般有下面四步:
- 预处理,与“#”相关的一些指令,包括#include,#define等,进行简单的粘贴复制和替换,生成.i的文件。
- 将预处理后的.i文件,并转变成汇编语言,生成文件.s—汇编语言程序。
- 将汇编程序语言转变成为目标代码(机器码)生成.o的文件,和一些连接器需要用到的重定向信息。
- 利用重定向信息将所有的可执行文件(所有编译单元).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进行多文件的编译
本文介绍了如何使用VSCode进行C/C++的单文件和多文件项目的编译与调试。首先,通过g++编译器逐个解释了预处理、汇编和链接等步骤。接着,展示了在VSCode中生成和配置launch.json及task.json文件以实现单文件调试。对于多文件项目,将代码拆分为多个源文件后,同样使用g++编译生成可执行文件。最后,详细讲解了如何调整VSCode配置以适应多文件调试,并引入CMake进行项目管理,确保调试的顺利进行。

2935

被折叠的 条评论
为什么被折叠?



