Tip: vscode是一款轻量级编辑器,可以编译调试各种语言,当我们需要用到某些功能的时候,只需要下载相应的插件就可以使用了。简直不要太方便,但是由于需要配置相关参数,对刚刚入门的小白有点不友好。因此做这篇笔记,做一个简单的回顾,来提示自己如何快速使用vscode。
如上图所示,vscode界面分为四个区域,分别为:
1.菜单栏: 负责vscode编辑器相关设置工作
2.侧边栏:vscode的核心,负责显示工作文件夹、代码调试、插件安装等。
3.编辑区:编辑代码的区域。
4.状态栏:显示当前编辑器的一些状态,例如 光标坐标、缩进的字符、编码、语言、操作系统等。
以使用vscode调试C++为例,在vscode中创建一个C++工程。
vscode是以文件夹作为工程项目地工作区间的,创建流程如下:
code . #在当前目录下打开vscode
此时,vscode已经创建一个空的工程,这个工程还无法做任何事情,因为我们要调试C++代码,所以接下来我们要安装C++相关插件。
1.点击如下图所示侧边栏的商店按钮,并在搜索框输入要安装的插件,点击安装,等待安装完成即可。
点击下下图所示的按钮,创建main.cpp文件,并在main.cpp文件中编辑代码。
调试程序需要设置两个配置文件,launch.json文件用于调试程序的相关配置,tasks.json文件用于程序在调试之前相关操作的配置。
launch.json是用于调试程序的配置文件,其中最重要的是下面两个参数:
program:用于调试的可执行文件路径。 作用:告诉程序要调试的可执行文件。
“preLaunchTask”: task.json的label名。 在调试程序之前往往需要先编译程序,因此这个参数的作用是引入task.json文件,使程序在调试之前可以先运行task.json文件中的相关配置操作。
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/my_cmake_exe", #用于调试的可执行文件 路径
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "Build" #task.json文件label名
}
]
}
tasks.json: 用于配置操作指令的文件
下面的例子是配置cmake下的C++程序操作指令。通过之前的学习概括cmake 编译工程的操作过程为:1. cmake … + 2. make
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"options": {
"cwd": "${workspaceFolder}/build" //操作指令执行的相对路径 ${workspaceFolder}表示当前工作文件夹路径
},
"tasks": [
//配置操作 cmake ..
{
"label": "cmake", //操作名称
"type": "shell", //指令类型
"command": "cmake", //指令
"args": [ //指令的参数
".." //..表示上一级文件路径
]
},
//配置操作 make
{
"label": "make",
"command": "make",
"group": {
"kind": "build",
"isDefault": true
},
"args": [
]
},
//将前两个操作按照顺序组合 cmake .. make
{
"label": "Build", //launch.json中preLaunchTask需要的label。这个label名为“Build的操作是将第一个label和第二个label的操作按照一定顺序组合起来
"dependsOrder": "sequence" , //execute program by order 设置指令按照依赖顺序执行
"dependsOn":[ //设置操作指令执行的依赖顺序
"cmake", //第一个指令label名
"make" //第二个指令label名
]
}
]
}