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进行多文件的编译