赞
踩
vscode是一个轻量级的文本编辑器,但是它的扩展插件可以让他拓展成功能齐全的IDE,这其中就靠的是tasks.json和launch.json的配置。这两个文件需要存放在当前工程的.vscode目录下。
vscode预定义了一些变量供我们在json文件使用:
变量名 | 含义 |
---|---|
${workspaceRoot} | 当前打开的文件夹的绝对路径+文件夹的名字 |
${workspaceRootFolderName} | 当前打开的文件夹的名字 |
${file} | 当前打开正在编辑的文件名,包括绝对路径,文件名,文件后缀名 |
${relativeFile} | 从当前打开的文件夹到当前打开的文件的路径如 当前打开的是test文件夹,当前的打开的是main.c,并有test/first/second/main.c那么此变量代表的是 first / second / main.c |
${fileBasename} | 当前打开的文件名+后缀名,不包括路径 |
${fileBasenameNoExtension} | 当前打开的文件的文件名,不包括路径和后缀名 |
${fileDirname} | 当前打开的文件所在的绝对路径,不包括文件名 |
${fileExtname} | 当前打开的文件的后缀名 |
${cwd} | 任务开始运行时的当前工作目录 |
${lineNumber} | 当前打开的文件,光标所在的行数 |
关于变量的更多信息见:https://code.visualstudio.com/docs/editor/variables-reference
{
// https://code.visualstudio.com/docs/editor/tasks
"version": "2.0.0",
"tasks": [
{
"label": "build", // 任务的名字叫Build,注意是大小写区分的,等会在launch中调用这个名字,这个名字也会在task列表中显示
"detail": "build project", // 描述信息,也会在task列表显示,在label的下面
"type": "shell", // 会在shell中执行命令,还可以是process,表示命令作为一个进程运行
"command": "g++", // 命令是g++,这里也可以是一个shell脚本
"args": [
"'-Wall'",
"'-std=c++17'", //使用c++17标准编译
"'${file}'", //当前文件名
"-o", //对象名,不进行编译优化
"'${fileBasenameNoExtension}'", //当前文件名(去掉扩展名)
],
// 所以以上部分,就是在shell中执行(假设文件名为filename.cpp)
// g++ filename.cpp -o filename
"group": {
"kind": "build", // 指定组名,相当于将该任务添加到build组
"isDefault": true
// 任务分组,因为是tasks而不是task,意味着可以连着执行很多任务
// 在build组的任务们,可以通过在Command Palette(F1) 输入run build task来运行
// 当然,如果任务分组是test,你就可以用run test task来运行
},
"problemMatcher": [
"$gcc" // 使用gcc捕获错误
],
// 如果没有依赖,以下可以不写
"dependsOrder": "sequence", // 按列出的顺序执行任务依赖项
"dependsOn":[
// "xx1", // 填写其他任务的label
// "xx2"
]
}
]
}
tasks是个数组,里面可以填写多个task,task通过label进行标识,也就是task的名字。
按下ctrl +p , 再输入task空格,就可以看到刚刚添加的task: build。
{
"version": "0.2.0",
"configurations": [{
"name": "C++ Launch (GDB)", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,是vscode官方推出的不同语法插件定义的,对于C/C++只能是cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"targetArchitecture": "x86", // 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64
"program": "${file}", // 将要进行调试的程序的路径
"MIMode": "gdb", // 指定调试类型,
"miDebuggerPath": "/usr/bin/gdb", // miDebugger的路径
"miDebuggerArgs": "", //传递给gdb的参数
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${fileDirname}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"preLaunchTask": "build", // 调试会话开始前执行的任务,一般为编译程序,这个任务需要在tasks.json文件里定义
}]
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。