文章目录
- 一、vscode搭建开发环境
- 1、下载和配置MinGW-w64 编译器套件
- 2、安装到电脑中
- 3、配置环境变量
- 4、测试是否安装成功
- 5、vscode上安装C/C++插件
- 二 、配置编译环境时各个文件的含义
- 1、task.json:此文件告诉VS代码如何构建(编译)程序,即成功运行后会生成对应的可执行文件(名字有task.json里面的参数决定)
- 2、launch.json(里面主要是编译器参数):用于执行编译好的文件(看program的指向),也可以进行dubug(GDB)
- 三、配置文件中变量索引的含义
一、vscode搭建开发环境
1、下载和配置MinGW-w64 编译器套件
下载地址:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
点击进去后然后下拉差不多到底
根据自身需求选择上图其中的一个下载
2、安装到电脑中
解压刚下载的压缩包,然后打开把mingw64这个文件夹复制到你想要放到的位置,类似如下(这就是你这个编译套件的地址)
3、配置环境变量
在电脑上找到变量,然后在系统变量中找到Path,,将第二步中mingw64中的bin文件的路径拷贝进去
4、测试是否安装成功
window+r打开CMD命令 输入gcc --version 查看是否安装成功
输入where gcc可以查看安装的位置
5、vscode上安装C/C++插件
打开vscode的扩展,搜索这个插件并安装成功后重启vscode即可
二 、配置编译环境时各个文件的含义
1、task.json:此文件告诉VS代码如何构建(编译)程序,即成功运行后会生成对应的可执行文件(名字有task.json里面的参数决定)
(1)tasks.json的主要作用就是执行类似 gcc -g main.c -o main 的命令,需要注意的一点是,tasks.json的"label"参数值和launch.json的"preLaunchTask"参数值需要保持一致
1)在launch.json中里面参数——“preLaunchTask”:表示在执行launch.json之前需要先哪个执行( task.json(与哪个tasks.json的"label"匹配,就执行哪个task)
(2)tasks.json这个文件是定义调试开始前要执行的任务, 定义了用于编译程序的编译器,所输出的文件格式,使用的语言标准等
2、launch.json(里面主要是编译器参数):用于执行编译好的文件(看program的指向),也可以进行dubug(GDB)
(1)添加配置时选择 gdb 与 launch 参数原因
1)为什么选gdb不选 windows:因为这个不会执行预任务,也就没法编译文件了
2)为什么选 launch不选attach:因为attach用来给正在执行的文件用的,比如网页中的组件,而launch是执行新文件
(2)launch.json各参数含义
1)program选项为要调试程序的路径
2)args为运行时添加的参数
3)stopAtEntry选项默认为false,若设置为true,则会在函数入口中暂停
4)externalConsole为是否在外部控制外运行,设置为true会弹出windows的运行窗口
5)miDebuggerPath为gbd调试器的路径
6)setupCommands为启动调试前为GDB调试器设置相应的命令
7)preLaunchTask选项为运行调试前执行的任务
三、配置文件中变量索引的含义
1)${workspaceFolder} :VS Code 中打开的文件夹目录 (通常是项目的位置
2)${workspaceFolderBasename} :没有任何斜杠 (/)的 VS Code 中打开的文件夹目录
3)${file} :当前打开正在编辑的文件名,包括绝对路径,文件名,文件后缀名
4)${relativeFile} :从当前打开的文件夹到当前打开的文件的路径 ,如当前打开的是test文件夹,当前的打开的是main.c,并有test / first / second / main.c,那么此变量代表的是 first / second / main.c
5)${fileBasename} : 当前打开的文件名+后缀名,不包括路径(有拓展名,如: main.cpp)
6)${fileBasenameNoExtension} : 当前打开的文件的文件名,不包括路径和后缀名
7)${cwd}: task runner的工作目录
8)${fileDirname} :当前打开的文件所在的绝对路径,不包括文件名
9)${fileExtname} : 当前打开的文件的后缀名
10)${lineNumber} :文件中目前被选择的行数
11)${selectedText}: 文件中目前被选择的内容
12)${workspaceRootFolderName} : 当前打开的文件夹的名字