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

news2024/9/22 4:22:04

前言

上文介绍了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.coloradmin.cn/o/2154078.html

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

相关文章

C#进阶-基于雪花算法的订单号设计与实现

在现代电商系统和分布式系统中,高效地生成全局唯一的订单号是一个关键需求。订单号不仅需要唯一性,还需要具备一定的趋势递增性,以满足数据库索引和排序的需求。本文将介绍如何在C#中使用雪花算法(Snowflake)设计和实现…

IntelliJ IDEA 2024创建Java项目

一、前言 本文将带领大家手把手创建纯Java项目,不涉及Maven。如有问题,欢迎大家在评论区指正说明! 二、环境准备 名称版本jdk1.8idea2024 1.4操作系统win10 jdk的安装教程 idea的安装教程 三、创建项目 首先我们点击新建项目 然后我们…

基于SpringBoot+Vue+MySQL的国产动漫网站

系统展示 用户前台界面 管理员后台界面 系统背景 随着国内动漫产业的蓬勃发展和互联网技术的快速进步,动漫爱好者们对高质量、个性化的国产动漫内容需求日益增长。然而,市场上现有的动漫平台大多以国外动漫为主,对国产动漫的推广和展示存在不…

网页聊天——测试报告——Selenium自动化测试

一,项目概括 1.1 项目名称 网页聊天 1.2 测试时间 2024.9 1.3 编写目的 对编写的网页聊天项目进行软件测试活动,揭示潜在问题,总结测试经验 二,测试计划 2.1 测试环境与配置 服务器:云服务器 ubuntu_22 PC机&am…

十六、电压比较电路

电压比较电路 1、电压比较器的作用和工作过程 2、比较器的输入-输出特性曲线, 3、如何构成迟滞比较器。

Transformer模型-7- Decoder

概述 Decoder也是N6层堆叠的结构,每层被分3层: 两个注意力层和前馈网络层,同Encoder一样在主层后都加有Add&Norm,负责残差连接和归一化操作。 Encoder与Decoder有三大主要的不同: 第一层 Masked Multi-Head Attention: 采用…

SpringCloud Alibaba 工程搭建详细教程

使用 Spring Cloud Alibaba 的主要目的是解决单体应用的痛点,并利用微服务架构的优势来构建高扩展性、可靠的分布式系统。 1. 单体应用的痛点 单体应用虽然在小型项目中优势明显,但随着业务复杂性增加,逐渐暴露出许多问题: 代码…

Python | Leetcode Python题解之第420题强密码检验器

题目: 题解: class Solution:def strongPasswordChecker(self, password: str) -> int:n len(password)has_lower has_upper has_digit Falsefor ch in password:if ch.islower():has_lower Trueelif ch.isupper():has_upper Trueelif ch.isdi…

Datawhale X 南瓜书 task02学习笔记

算法原理引入 样本点通常应该在模型的2侧,原因:在实际中,因为某种不可控的因素,测出来的样本点肯定是有误差的。如果样本数据点都在模型上,则说明在建立模型时,把误差也考虑进去了,这就是我们说…

Linux使用常见问题指南

普通用户sudo权限问题 我在普通用户Sun下,编写了一个.cc文件,然后用sudo权限安装gcc/g去运行该文件,却提示我如下: 原因 当前的用户没有加入到sudo的配置文件里 #切换到root用户 su #编辑配置文件 vim /etc/sudoers #增加配置, 在打开的配置文件中,找到root ALL(A…

波分技术基础 -- FEC

信号在传输过程中,不可避免的会出现劣化、误码,FEC (Forward error correction) 技术确保通信系统在噪声和其他损伤的影响下,依然能够实现无错误传输。 应用场景:长途密集波分系统(DWDM)实现方式&#xff…

AI赋能篇:万物皆可播,AI视频直播新趋势,轻松打造24h不间断开播!

AI赋能篇:万物皆可播,AI视频直播新趋势,轻松打造24h不间断开播! 在数字化浪潮的推动下,人工智能(AI)正以前所未有的速度渗透到我们生活的每一个角落,其中,AI视频直播作为…

基于vue框架的储蓄卡业务管理系统的设计与实现28g6t(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:客户,银行账户,存款记录,取款记录,转账记录,经理,柜员,贷款产品,贷款申请,放款信息,还款信息,离职申请,通知公告,用户反馈,开户申请 开题报告内容 基于Vue框架的储蓄卡业务管理系统设计与实现开题报告 一、项目背景与意义 随着金融科…

智慧园区:解析集成运维的未来之路

随着科技的进步和社会的发展,智慧园区已经成为了城市建设的重要方向。作为一个集信息技术、通信技术、能源技术等多种技术于一体的综合性项目,智慧园区的建设具有极高的科技含量和产业复杂度。而在智慧园区的运维管理中,更是需要集成化的处理…

unity3d入门教程八-飞机大战

unity3d入门教程八-飞机大战 19.2竖屏设置19.3主控脚本19.4制作子弹19.5制作飞机19.6制作怪物19.7击中目标19.8随机生成怪物19.9预制体怪物随机更换头像19.10怪物相关优化19.11游戏背景19.12游戏最终优化一、 HP显示二、怪物预制体三、分值显示四、背景音乐 19.2竖屏设置 切换到…

信息安全工程师(8)网络新安全目标与功能

前言 网络新安全目标与功能在当前的互联网环境中显得尤为重要,它们不仅反映了网络安全领域的最新发展趋势,也体现了对网络信息系统保护的不断加强。 一、网络新安全目标 全面防护与动态应对: 目标:建立多层次、全方位的网络安全防…

安装黑群晖系统,并使用NAS公网助手访问教程(好文)

由于正版群晖系统的价格不菲,对于预算有限的用户来说,安装黑群晖系统成为了一个不错的选择(如果您预算充足,建议选择白群晖)。如您对宅系科技比较感兴趣,欢迎查看本文,将详细介绍如何安装黑群晖…

PAT甲级-1083 List Grades

题目 题目大意 学生有姓名,编号和分数,给定分数区间,输出在这个区间内的人名和编号。输出顺序按照分数从高到低,没有重复的分数。 思路 非常简单的结构体排序题,定义一个结构体,按照题目条件sort就可以了…

2--SpringBoot项目中员工管理、分类管理 详解(一)

目录 员工管理 新增员工 需求分析和设计 代码开发 实体类 Controller层 Service层接口 Service层实现类 Mapper层 功能测试 通过接口文档测试 代码完善 问题一 解决 问题二 解决 员工分页查询 需求分析和设计 代码开发 设计DTO类 封装PageResult Controlle…

微服务架构---Ribbon\Feign

Ribbon(负载均衡) Ribbon概述 在 SpringCloud 中, Nacos⼀般配合Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon利用从Nacos中读取到的服务信息,在调用服务节点提供的服务时,会合理的进行负载。 Ribbon作…