VSCode C++ Tasks.json基本信息介绍

前言

上文介绍了VSCode在Windows环境下如果创建C++项目和编译多个文件项目,但是只是粗略的说明了一下Tasks.json文件。今天对tasks.json进行进一步的了解。

内容

Tasks文件

{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: g++.exe 生成活动文件","command": "D:\\mingw\\mingw64\\bin\\g++.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "编译器: D:\\mingw\\mingw64\\bin\\g++.exe"}]
}
  • "version": 版本
  • "tasks":任务列表
  • "type":任务类型 (cppbulid表示这个任务是关于C++项目构建的)
  • "label":任务名称
  • "command":指令(这里的值一般是编译器的路径)
  •  "args": 指令的参数
  • "options":用来指定与任务执行相关的选项
  • "problemMatcher":是一个预定义的模式名称或一个自定义的 JSON 对象,用于描述如何从命令行输出中提取问题信息
  •  "group":用于将任务分组到构建和测试的上下文中
  •  "detail":任务描述

 下面对几个重要的属性进一步解释;

 tasks属性

tasks在json中是一个数组。数组中的每一个json对象都表示一个任务;比如创建一个构建项目和一个测试项目:

{"version": "2.0.0","tasks": [{"label": "debug build","command": "g++ -g -o debug_build ${file}","type": "shell","group": {"kind": "build","isDefault": true},"problemMatcher": ["$gcc"]},{"label": "release build","command": "g++ -o release_build ${file}","type": "shell","group": {"kind": "build","isDefault": false},"problemMatcher": ["$gcc"]}]
}

command属性

 command属性指定了要执行的命令。这是任务定义中最基本的部分之一,它告诉 VSCode 要运行什么程序或脚本。

从上面的两段json中可以看到,command可以直接输入编译命令,也可以指定编译器地址,具体编译命令由args属性给出;

同时command属性可以使用变量(vscode中,变量以${varname}的形式存在)、系统环境变量,如果有多命令的需要,还可以执行脚本(liunx的.sh文件和windows的.bat文件);

args属性

 用于定义传递给命令的参数。这个属性是一个数组,可以包含一个或多个字符串,每个字符串代表一个命令行参数。args 属性非常有用,因为它允许你通过任务配置来动态地改变命令的行为。

当command属性的值是执行一个脚本时,args可以为脚本传参:

脚本:

@echo off
echo Running with arguments %1, %2, %3
pause

 tasks.json文件

{"version": "2.0.0","tasks": [{"label": "run script","command": "${workspaceFolder}/run.bat","args": ["arg1", "arg2", "arg3"],"type": "shell","group": {"kind": "test","isDefault": true}}]
}

options属性

  • env: 一个对象,用于设置环境变量。例如,你可以设置 {"NODE_ENV": "development"} 来为你的任务设置一个开发环境。

  • cwd: 指定任务执行时的工作目录。这有助于当你的任务需要在一个特定的目录下运行时指定该目录。

  • shell: 如果设置为 true,则在 shell 环境中执行命令(对于 Windows 可能是 cmd.exe 或 PowerShell)。这对于使用 shell 特性如管道或 shell 扩展等是有用的。

  • windows: 对于 Windows 平台上的特定选项。它可以包含像 shell 这样的选项,或者任何其他针对 Windows 的特殊配置。

  • osx: 对于 macOS 平台上的特定选项。

  • linux: 对于 Linux 平台上的特定选项。

group属性

在group属性中有两个子属性,分别是"kind"和"isDefault"。

kind:接受两个值:"build"和"test"。分别表示”这是一个构建任务“和”这是一个测试任务“;

isDefault:其值为布尔型,表示某个任务是否应作为其所属组的默认任务;在多个任务场景中,该属性可以最常用的任务为首选项。该属性的值为true,则默认生成,为false,则需要手动选择生成任务;

具体操作:在VSCode界面右上角点击终端,在出现的菜单栏中有两个选项,分别是“运行生成任务”和“运行任务”,这两个选项不同点在:前者生成默认任务,后者需要用户选择具体运行哪个任务;如图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1535239.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

IPC之AIDL从认识到实战

目录 前言 什么是AIDL? 为什么要设计出这样一种语言?它能帮助我们干什么? 还有其他方法能实现跨进程通信吗?相较于别的方法AIDL有什么优势呢? AIDL的相关语法 Java与AIDL的不同之处 AIDL默认支持的数据类型: …

博弈美业系统实操:美业门店管理系统如何查看客户档案?美业SaaS系统源码

1.打开博弈美业App; 2.点击App下方【客户】,进入客户管理页; 3.找到想要查看的客户,点击进入客户详情页; 4.客户详情页可查看客户个人信息、个性标签、消费记录、回访记录等等详细信息。

RedisTemplate操作ZSet的API

文章目录 ⛄概述⛄常见命令有⛄RedisTemplate API❄️❄️ 向集合中插入元素,并设置分数❄️❄️向集合中插入多个元素,并设置分数❄️❄️按照排名先后(从小到大)打印指定区间内的元素, -1为打印全部❄️❄️获得指定元素的分数❄️❄️返回集合内的成员个数❄️❄…

026.(娱乐)魔改浏览器-任务栏图标右上角加提示徽章

一、目标: windows中,打开chromium,任务栏中会出现一个chromium的图标。我们的目标是给这个图标的右上角,加上"有1条新消息"的小提示图标,也叫徽章(badge)注意:本章节纯属娱乐,有需要…

钻机、塔吊等大型工程设备,如何远程维护、实时采集运行数据?

在建筑和工程领域,重型设备的应用不可或缺,无论是在道路与桥梁建设、高层建筑施工,还是在风电、石油等能源项目的开发中,都会用到塔吊、钻机等大型机械工程设备。 随着数字化升级、工业4.0成为行业发展趋势,为了进一步…

基于python+django+mysql+Nanodet检测模型的水稻虫害检测系统

博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…

Qt (16)【Qt 事件 —— Qt 事件简介 | 如何重写相关的 Event 函数】

阅读导航 引言一、事件介绍二、如何重写相关的 Event 函数1. 事件的处理简介2. 示例重写鼠标相关的 Event 函数(1)新建Qt项目,设计UI文件(2)新添加MyLabel类(3)重写enterEvent()方法和leaveEven…

果蔬识别系统架构+流程图

相关文章和代码 果蔬识别系统 果蔬识别系统优化(1~5) 架构图 流程图 初始化 识别流程 学习流程 同步流程 与初始化类似,只是同步只同步一个storeCode数据 删除数据流程 导入数据

三、k8s中的控制器的使用

一 什么是控制器 官方文档: 工作负载管理 | Kubernetes 控制器也是管理pod的一种手段 自主式pod:pod退出或意外关闭后不会被重新创建 控制器管理的 Pod:在控制器的生命周期里,始终要维持 Pod 的副本数目 Pod控制器是管理pod…

软件安装攻略:EmEditor编辑器下载安装与使用

EmEditor是一款在Windows平台上运行的文字编辑程序。EmEditor以运作轻巧、敏捷而又功能强大、丰富著称,得到许多用户的好评。Windows内建的记事本程式由于功能太过单薄,所以有不少用户直接以EmEditor取代,emeditor是一个跨平台的文本编辑器&a…

用SpringBoot进行阿里云大模型接口调用同步方法和异步方法

同步效果就不展示了,这里展示更常用的异步,多轮异步流式效果展示如下: 结果内容组合 1、同步版本环境准备以及代码 需要开通阿里大模型服务,如果没有开通服务,单独的去生成 key 是无效的。 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 生成你需要的 key 1、…

2.C++中程序的语法基础--关键字与分隔符

现在回过头来看上一篇中所写的程序&#xff1a; #include <bits/stdc.h> using namespace std; int main() {// 程序主体cout << "HelloWorld" << endl; return 0; } 我们会看到许多英文单词&#xff0c;像"include"、“using”&…

Vue路由二(嵌套多级路由、路由query传参、路由命名、路由params传参、props配置、<router-link>的replace属性)

目录 1. 嵌套(多级)路由2. 路由query传参3. 路由命名4. 路由params传参5. props配置6. <router-link>的replace属性 1. 嵌套(多级)路由 pages/Car.vue <template><ul><li>car1</li><li>car2</li><li>car3</li></ul…

【Java面试】第七天

&#x1f31f;个人主页&#xff1a;时间会证明一切. 目录 有三个线程T1,T2,T3如何保证顺序执行&#xff1f;依次执行start方法使用join使用CountDownLatch使用线程池使用CompletableFuture Spring Bean的生命周期是怎么样的&#xff1f;Autowired和Resource的关系&#xff1f;相…

读取CSV中文件报ArrayIndexOutOfBounds异常

序言 有个需求要将csv文件入库&#xff0c;之前测试的文件都是可以正常解析入库的&#xff0c;但新提供的一个csv文件读取的时候捕获的异常信息就总是提示&#xff1a;Index 1 out of bounds for length 1。 读取csv文件的方法 public static List<Map<String, Object…

8.6小波变换(Wavelet Transform)边缘检测

实验原理 由于OpenCV本身并不直接支持小波变换&#xff08;Wavelet Transform&#xff09;&#xff0c;我们需要借助一些技巧来实现它。一种常见的方法是利用离散余弦变换&#xff08;DCT&#xff09;或离散傅立叶变换&#xff08;DFT&#xff09;来近似实现小波变换的功能。但…

【机器学习(六)】分类和回归任务-LightGBM算法-Sentosa_DSML社区版

文章目录 一、算法概念二、算法原理&#xff08;一&#xff09;Histogram&#xff08;二&#xff09;GOSS1、信息增益2、近似误差 &#xff08;三&#xff09;EFB 三、算法优缺点&#xff08;一&#xff09;优点&#xff08;二&#xff09;缺点 四、LightGBM分类任务实现对比&a…

AI基础 L21 Quantifying Uncertainty and Reasoning with Probabilities III

Bayesian Networks 1 Bayesian Networks • A Bayesian Network (BN) represents the dependencies among variables and encodes the full joint probability distribution concisely. • A BN is a directed graph, where each node is annotated with probability informati…

[项目][WebServer][CGI机制 设计]详细讲解

目录 1.何为CGI机制&#xff1f;2.理解CGI机制3.CGI接口设计1.ProcessNonCgi2.ProcessCgi 1.何为CGI机制&#xff1f; CGI(Common Gateway Interface)是外部应用程序(CGI程序)与WEB服务器之间的接口标准&#xff0c;是在CGI程序和WEB服务器之间传递信息的过程 2.理解CGI机制 …

[XILINX] 正点原子ZYNQ7015开发板!ZYNQ 7000系列、双核ARM、PCIe2.0、SFPX2,性能强悍,资料丰富!

正点原子ZYNQ7015开发板&#xff01;ZYNQ 7000系列、双核ARM、PCIe2.0、SFPX2&#xff0c;性能强悍&#xff0c;资料丰富&#xff01; 正点原子Z15 ZYNQ开发板&#xff0c;搭载Xilinx Zynq7000系列芯片&#xff0c;核心板主控芯片的型号是XC7Z015CLG485-2。开发板由核心板&…