简介
由于在参考网上搭建环境中,从来都没有真的成功过,今天在b站上看到一个up的教程,搭建成功了,因此写一遍博文记录。
up连接如下:
Vscode只是文本编辑器,没有编译器,但是可以安装插件和添加编译器路径,这样我们就能将一个文本编辑器合成一个集成开发环境了。如codeblocks这样,编码、阅读、编译、调试一体的软件了。
一、需要安装的软件:①vscode 、②mingw
二、在vscode中配置C/C++环境
①在扩展区安装汉化包、和C/C++扩展包。vscode默认是英文的,安装这两个插件是为了方面看代码,不安装也可以。C/C++的插件,后面写了代码会提示让你安装的。
②自己在桌面或者其他地方新建一个文件夹,用来存放我们的代码。我在桌面新建test文件夹
在vscode中: 文件->打开文件夹,打开我们刚刚建立的test文件夹。
③在test目录下新建main.c文件,main是文件名,取英文名字即可,随便取名,不能有中文,后缀名.c表示是c语言文件,.cpp表示是c++文件,这里以C语言为例。
④写入测试代码,点击右上角小虫子运行,暂时不调试。点击运行后会在左边生成tasks.json文件。
⑤代码运行结果
⑥这时候对单个文件编译和调试均可以,但是想要自己建立头文件还不行,编译和调试还不行,这时候需要对tasks.json和launch.json文件。如果没有自动生成.launch.json文件,如下创建:
⑦点击添加配置,启动gdb调试器
⑧tasks.json:指定gcc编译器路径,指定编译当前工作空间下的所有c源文件,指定生成的可执行文件名。修改如下备注的地方,Ctrl+/可以快速屏蔽代码,如果是C++,gcc.exe要改成g++.exe。
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe 生成活动文件",
"command": "D:\\tools\\GCC\\MinGW\\bin\\gcc.exe",//刚刚安装的mingw中gcc编译器的路径
"args": [
"-fdiagnostics-color=always",
"-g",
// "${file}",编译当前文件名,改为*.c编译工作目录下所有.c文件
"*.c",//工作目录下所有.c文件
"-o",
// "${fileDirname}\\${fileBasenameNoExtension}.exe"编译后生成的可执行文件名
"${fileDirname}\\a.exe"//改为生成a.exe,复制到launch中"program"下
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
⑨launch.json配置,指定gdb调试器路径,和task.json中定义的可执行文件名。
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
// "program": "输入程序名称,例如 ${workspaceFolder}/a.exe",//在tasks.json中配置的可执行文件名,
"program": "${fileDirname}\\a.exe",//tasks.json的"args"下复制过来的可执行文件名
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
// "miDebuggerPath": "/path/to/gdb",//木子备注:指定刚刚安装的minggw中的gdb调试器路径
"miDebuggerPath": "D:\\tools\\GCC\\MinGW\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}
10.自己添加头文件,测试如下,通过
总结:
原来没有搞懂tasks.json和launch.json文件的作用。
tasks.json指定编译器gcc.exe或者g++.exe的路径,指定要编译的源文件,指定编译生成的可执行文件名。
launch.json:指定调试器gdb.exe(c和c++一样)的路径,需要指定tasks.json中设置的可执行文件名。