VSCode中 task.json 和 launch.json 的作用和参数解释以及配置教程

前言

由于 VS Code 并不是一个传统意义上的 IDE,所以初学者可能在使用过程中会有很多的疑惑,其中比较常见的一个问题就是 tasks.jsonlaunch.json两个文件分别有什么作用以及如何配置

tasks.json

VSCode 官网提供的 tasks.json 配置教程
使用不同的编程语言可能有不同的开发流程,比如 C/C++ 就需要编译(广义编译,包括了链接)、运行、测试、打包等等流程,而 Python 只需要运行即可,为了把各种语言的不同开发流程抽象成同一套流程,于是有了编码(Code)— 构建(build)— 运行/调试(run/debug)— 测试 (test) — 打包(package) 等等,其中每个环节都可以认为是一个 task,所以可以利用 tasks.json来手动完成那些使用 IDE 时被隐藏的开发流程细节

type 参数

每个 task 都有一个 type 类型,VSCode 为 tasks.json 提供了一些内置的类型支持,比如 “npm”,但是其他语言的类型就需要通过插件来支持,用户自制的 task 一般使用 “shell” 或者 “process” 即可

label 参数

只是一个名称,没有特殊作用

command 参数

关键参数,表示传给 shell 的命令

args 参数

command 后面所跟的参数

launch.json

VSCode 官网提供的 launch.json 的配置教程
为了 调试 程序,仅靠 tasks.json 还不够用户友好,如果需要在 VSCode 编辑器界面中调试代码,就需要配置 launch.json,它和 tasks.json一样,都是VSCode编辑器自带的内置功能,而不是某个插件提供的功能,但是插件提供了扩展,比如原生的 VSCode 仅支持 JavaScript 和 TypeScript 等极少几种语言的调试,但是安装了微软官方提供的 C++ 插件后,就可以做到调试 C++ 程序了

6 种运行程序的方式的区别和背后的原理

在使用 VSCode 编写 C++ 程序时,直观感受是有三种让程序跑起来的方法,分别是:

方法1:在左侧导航栏中

在这里插入图片描述
点击 Run and Debug 即可开始执行 launch.json中配置的调试(或者运行)任务

方法2:按 F5 运行

本质上就是方法1的快捷键,没有区别,如果按 ctrl + F5的话会以 Run 的方式启动运行,跳过断点(某些语言不支持直接运行的功能)

方法3:点击右上角的按钮执行

在这里插入图片描述
在这里插入图片描述

本质上也是通过 VSCode自带调试接口 + 插件提供的功能具体实现 + launch.json 中的配置信息 启动的调试,有趣的是,图中前两项在 launch.json 并不存在的时候也能正常启动运行,这是因为 C++ 插件提供了一些对 launch.json的简单实现,免去了对及其简单的程序再编写一次 launch.json的麻烦,下面的三个选项都是我自己在 launch.json中定义的运行任务

方法4:通过 tasks.json 中的 build 任务进行构建,然后再在 Terminal 中手动启动

这种方法对应着快捷键 ctril + shift + B,运行默认构建任务,然后再自己另起终端运行即可

方法5:在 Terminal 中手动执行编译命令,再运行执行命令

此处省略

方法6:利用第三方构建工具(如cmake),然后启动

此处省略

总结

tasks.jsonlaunch.json两个文件分别对应着 VSCode 对于不同的开发语言所抽象出来的各个共同的开发环节的细粒度控制,前者控制构建环节(其实理论上可以控制任何过程),后者控制运行和调试环节。而且我们很多日用而不自知的许多运行程序的操作背后,其实都是 launch.json 在以不同的形式和同样的原理在起作用

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

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

相关文章

UE4_导入内容_Alembic文件导入器

Alembic文件导入器 Alembic文件格式(.abc)是一个开放的计算机图形交换框架,它将复杂的动画化场景浓缩成一组非过程式的、与应用程序无关的烘焙几何结果。虚幻引擎4(UE4)允许你通过 Alembic导入器 导入你的Alembic文件,这让你可以在外部自由地创建复杂的…

什么是态势感知?

什么是态势感知? 同学,听说过态势感知吗?啥?不知道?不知道很正常,因为态势感知是一个比较小众、比较神秘的概念。为什么态势感知很神秘,首先是因为这是来自军事情报领域的概念,然后…

008Node.js模块、自定义模块和CommonJs

CommonJS API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白。它的终极目标是提供一个类似Python,Ruby和Java标 准库。这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的…

【尝试】域名验证:配置github二级目录下的txt文件

【尝试】域名验证:配置github二级目录下的txt文件 写在最前面一、初始化本地仓库二、设置远程仓库1. 远程仓库 URL 没有设置或设置错误添加远程仓库修改远程仓库 2. 访问权限问题3. 仓库不存在步骤 1: 在你的仓库中添加文件步骤 2: 确认GitHub Pages设置步骤 3: 访问…

lua学习笔记21完结篇(lua中的垃圾回收)

print("*****************************lua中的垃圾回收*******************************") text{id24,name"仙贝"} --垃圾回收关键字collectgarbag --获取当前lua占用内存数 k字节 返回值*1024就可以得到具体占用字节数 print(collectgarbage("count&…

本地部署开源免费文件传输工具LocalSend并实现公网快速传送文件

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-X4xB3gSR3z2VUfmN {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

解析mysql的DDL语句生成高斯内表及表字段主键配置

mysql的DDL语句如下: CREATE TABLE gg_zr (id bigint(20) NOT NULL COMMENT 责任信息表主键id,zrdm varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 责任代码,zrmc varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAU…

C++项目——集群聊天服务器项目(十四)客户端业务

大家好~前段时间有些事情需要处理,没来得及更新,实在不好意思。 今天来继续更新集群聊天服务器项目的客户端功能,主要实现客户端业务,包括添加好友、点对点聊天、创建群组、添加群组、群组聊天业务,接下来我们一起来敲…

Prompt 工程技术提问的艺术,如何向 ChatGPT 提问?

Prompt 工程技术简介 什么是 Prompt 工程? Prompt 工程是创建提示或指导像 ChatGPT 这样的语言模型输出的过程。它允许用户控制模型的输出并 生成符合其特定需求的文本。ChatGPT 是一种先进的语言模型,能够生成类似于人类的文本。它建立在 Transformer 架…

FPGA基于VCU的H265视频解压缩,解码后HDMI2.0输出,支持4K60帧,提供工程源码+开发板+技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的视频图像编解码方案4K60帧HDMI2.0输入,H265视频压缩方案 3、详细设计方案设计框图FPGA开发板解压视频源Zynq UltraScale VCUVideo Frame Buffer ReadVideo MixerHDMI 1.4/2.0 Transmitter SubsystemVideo PHY Cont…

316_C++_xml文件解析成map,可以放到表格上 + xml、xlsx文件互相解析

xml文件例如&#xff1a; <?xml version"1.0" encoding"UTF-8" standalone"yes"?> <TrTable> <tr id"0" label"TR_PB_CH" text"CH%2"/> <tr id"4" label"TR_PB_CHN"…

情怀无价:重拾记忆的魅力——照片质量修复探究(下)

在前一篇文章中&#xff0c;我们介绍了如何利用AI图像提升工具&#xff1a;提高图片的分辨率。本文将继续探讨这一话题&#xff0c;深入了解如何使用 Selenium 和 AutoIt 这两个工具来实现自动化处理图片的任务。 视频演示 【审核中】 自动化任务概述 首先&#xff0c;让我…

milvus各组件的结构体分析2

milvus各组件的结构体分析2 分析各组件的服务端API。 rootcoord // Server grpc wrapper type Server struct {//自身提供的api功能接口rootCoord types.RootCoordComponentgrpcServer *grpc.ServergrpcErrChan chan errorwg sync.WaitGroupctx context.Contextcancel…

docker操作详解

Docker 是一个开源的应用容器引擎&#xff0c;它允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。使用 Docker&#xff0c;你可以很方便地部署和扩展应用程序&#xff0c;并且可以按…

【JVM】避免java内存泄漏、溢出的几种方法

1.尽早释放无用对象的引用。 好的办法是使用临时变量的时候&#xff0c;让引用变量在退出活动域后自动设置为null&#xff0c;暗示垃圾收集器来收集该对象&#xff0c;防止发生内存泄露。 2. 程序进行字符串处理时&#xff0c;尽量避免使用String&#xff0c;应使用StringBuffe…

必应bing搜索广告推广国内能开户吗?

随着互联网广告市场的不断进化和细分化&#xff0c;必应Bing搜索广告已逐渐成为中国企业拓展国内市场、精准触达目标客户的重要渠道之一。2024年&#xff0c;必应Bing在国内市场的进一步布局&#xff0c;不仅彰显了其对本土企业的强大吸引力&#xff0c;更带来了全新的开户政策…

【网站项目】驾校预约管理系统小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

【opencv】示例-image_alignment.cpp 利用ECC 算法进行图像对齐

affine imshow("image", target_image); imshow("template", template_image); imshow("warped image", warped_image); imshow("error (black: no error)", abs(errorImage) * 255 / max_of_error); homography 这段代码是一个利用EC…

「51媒体网」汽车类媒体有哪些?车展媒体宣传

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 汽车类媒体有很多&#xff0c;具体如下&#xff1a; 汽车之家&#xff1a;提供全面的汽车新闻、评测、导购等内容。 爱卡汽车&#xff1a;同样是一个综合性的汽车信息平台&#xff0c;涵…

2024 年适用于 Mac 电脑的最佳 SD 卡恢复软件

D 卡体积很小&#xff0c;广泛用于数码相机、摄像机、行车记录仪、无人机等。通常&#xff0c;在使用设备拍照、拍摄视频后&#xff0c;您会将文件移动到 Mac 进行进一步编辑或作为备份。大多数时候&#xff0c;应该存在问题。但是&#xff0c;您的 SD 卡仍然会出现一些问题并导…