VScode配置task和launch支持C++11


title: VScode配置task和launch
date: 2022-12-12 20:57:26
cover:
categories: VisualCode
tags:

  • debug

VScode配置task和launch支持C++11

刚开始使用VScode一般都是使用默认的task和lunch配置去执行代码或者debug,一旦修改了相关目录或者改动一些参数,就会不停的提醒XXX文件不存在或者一些奇怪错误。今天就专门花时间研究了一下task和lunch怎么用

因为task和launch都是使用json编写,并且是用来启动编译器,所以需要一些 预备知识

  • 编译器相关参数
  • json语法

Task的配置

task就是你当前要执行的任务,如果不手动配置,vs会自动配置当前环境的编译任务

初次创建文件或者目录后,按下 F1键盘 会自动生成launch和task文件

默认task如下

{"tasks": [{"type": "cppbuild","label": "C/C++: g++ build active file","command": "/usr/bin/g++","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": "build","detail": "Task generated by Debugger."}],"version": "2.0.0"
}

以下是VS官方文档参数说明

  • label: The task’s label used in the user interface.
  • type: The task’s type. For a custom task, this can either be shell or process. If shell is specified, the command is interpreted as a shell command (for example: bash, cmd, or PowerShell). If process is specified, the command is interpreted as a process to execute.
  • command: The actual command to execute.
  • windows: Any Windows specific properties. Will be used instead of the default properties when the command is executed on the Windows operating system.
  • group: Defines to which group the task belongs. In the example, it belongs to the test group. Tasks that belong to the test group can be executed by running Run Test Task from the Command Palette.
  • presentation: Defines how the task output is handled in the user interface. In this example, the Integrated Terminal showing the output is always revealed and a new terminal is created on every task run.
  • options: Override the defaults for cwd (current working directory), env (environment variables), or shell (default shell). Options can be set per task but also globally or per platform. Environment variables configured here can only be referenced from within your task script or process and will not be resolved if they are part of your args, command, or other task attributes.
  • runOptions: Defines when and how a task is run.

在配置文件下使用 CTRL+空格键 触发候选项。

我们修改的主要由这几项

  • label
  • command
  • args

label

在这里插入图片描述

图中显示的名字就是定义的 label

command

command为执行任务所使用的命令,在linux下如果用gcc或者clang可以使用

which gcc
which clang

查看当前使用编译器的文件路径。比如我要使用brew安装的clang,可以修改为

"command": "/opt/homebrew/opt/llvm/bin/clang++"

更换为你要使用的编译器即可

args

args为当前编译器的参数,配合vs相关变量使用,这里列出一些常用的变量

  • ${userHome} - the path of the user’s home folder
  • ${workspaceFolder} - the path of the folder opened in VS Code
  • ${workspaceFolderBasename} - the name of the folder opened in VS Code without any slashes (/)
  • ${file} - the current opened file
  • ${fileWorkspaceFolder} - the current opened file’s workspace folder
  • ${relativeFile} - the current opened file relative to workspaceFolder
  • ${relativeFileDirname} - the current opened file’s dirname relative to workspaceFolder
  • ${fileBasename} - the current opened file’s basename
  • ${fileBasenameNoExtension} - the current opened file’s basename with no file extension
  • ${fileDirname} - the current opened file’s dirname
  • ${fileExtname} - the current opened file’s extension
  • ${cwd} - the task runner’s current working directory upon the startup of VS Code
  • ${lineNumber} - the current selected line number in the active file
  • ${selectedText} - the current selected text in the active file
  • ${execPath} - the path to the running VS Code executable
  • ${defaultBuildTask} - the name of the default build task
  • ${pathSeparator} - the character used by the operating system to separate components in file paths

编译器的参数可以参考https://www.runoob.com/w3cnote/gcc-parameter-detail.html

"args": ["-g","${file}","-o","${fileDirname}/temp/${fileBasenameNoExtension}", //生成的文件放在temp目录下"-std=c++17"	//支持c++17
],

如果要使用c++11特性,可以在这里添加相关参数

其它参数

其他参数参照VS官方文档按需配置,基本C/C++的配置太不需要改动其他操作。

Launch

根据上文自动生成的task.json launch文件已经生成了,如果没有生成的话在debug界面点击生成launch

默认生成的文件如下

{"configurations": [{"name": "C/C++: g++ build and debug active file","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "lldb","preLaunchTask": "C/C++: g++ build active file"}],"version": "2.0.0"
}

VS官方参考文档:https://code.visualstudio.com/docs/editor/debugging

这里我们要注意几个参数

  • program
  • MIMode
  • preLaunchTask

program

program参数表示可执行文件的位置,如果找不刀可执行文件,debug会报错。

这里一定注意 要和task中build任务生成目录一致

因为我的task中,输出的二进制文件在temp文件下,所以要修改program的位置

"program": "${fileDirname}/temp/${fileBasenameNoExtension}"

MIMode

这里指定要使用的调试程序

  • gdb
  • lldb

我使用的是llvm所以直接就写lldb即可

如果是gcc的话就是用gdb

preLaunchTask

这里指定的是launch前置任务,一般用于生成可调式的二进制文件

因为我们已经生成了一个task,我们直接调用前一个task即可。preLaunchTask的值与task的label的值相匹配

"preLaunchTask": "C/C++: g++ build active file"

现在开始调试你的程序吧

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

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

相关文章

2023最新最全vscode插件精选

文章简介 本文介绍最新、最实用、最强大的 vscode 精选扩展。好用的扩展,犹如神兵利器,帮助程序员在代码的世界中,所向披靡,战无不胜! 作者介绍 随易出品,必属精品,只写有深度,有质…

将vscode打造为你的开发工具的首选

文章目录 前言vscode主要配置vscode的两个主要快捷键创建你的代码模版Java配置JDK和Gradle环境主要插件常见的配置launch.json配置运行测试用例常见问题常用快捷键 Python主要插件settings.json配置launch.json配置示例 Javascript/typescript常用插件settings.json样例 Golang…

20230512-VSCode-配置C++17-win11-22h2

20230512-VSCode-配置C17-win11-22h2 一、软件环境 标签:C VSCode w64devkit gcc12分栏:C操作系统:Windows11 x64 22h2编译器:vscode-1.78.2 w64devkit-1.18.0 二、操作步骤 1. 下载安装VScode 官网 打开官网【https://code…

VsCode超实用插件推荐,让你的开发效率火力全开

辅助开发类: 1. Vetur VUE开发必备插件 1.语法高亮,包括 vue/html css/sass/scss/less/stylus js/ts 2.语义高亮,除了支持template模板以外,还支持大多数主流的前端开发脚本和插件 3.语法错误检查,包括 CSS/SCSS/LE…

VScode插件推荐以及settings配置

1.[Deprecated] Bracket Pair Colorizer 2:一个可定制的扩展,用于为匹配的括号着色。 2.Ant Design Vue helper:antDesign的扩展工具(别的ui框架也有这样的插件,可以根据自己的需求下载)。 3.Auto Close …

搭建自己的聊天室平台、公司内部聊天平台,Rocket.Chat搭建及使用

一,简介 rocket.chat是一个开源的社交软件,即可以直接在web页面使用,也可以下载APP(Android,IOS,Windows,Mac OS) 主要功能:群组聊天,直接通信,私聊群,桌面…

网络内部搭建NTP服务器

医院内部很多服务器及科室客户端电脑经常出现时间不一致的状况,导致收费、挂号及检查等项目出现问题。因为现在医院都部署了银医,通过微信、支付宝等互联网应用实现挂号、收费、报告查询等。所以可以在医院内外网互联的前置机上部署一个NTP服务&#xff…

解决登录提示Access denied,You do not have access to chat.openai.com

在登录使用相关AI对话服务时,登录提示: Access denied You do not have access to chat.openai.com. The site owner may have set restrictions that prevent you from accessing the site. 原因是IP被阻挡了,参考解决: 解决访问…

报错https://chat.openai.com/ api/auth/ session 429怎么办

报错https://chat.openai.com/ api/auth/ session 429怎么办 记录一下今天遇到的bug 场景是这样的:我正常进入chatgpt的提问页面,然后一直转圈,重新登陆,清楚浏览器缓存,都不行。 文章目录 报错https://chat.openai.c…

用了cloudflare后,网站提示Sorry, you have been blocked怎么解决?

其实cloudflare还是非常智能的,但有时候为了安全起见,我们在网站后台修改参数的时候会被CF拦截,我就遇到了好几次提示Sorry, you have been blocked的情况。 遇到这种情况后,我首先找了官方的说明文档,但操作了半天好…

最新版腾讯防水墙(二代)识别

2022最新版腾讯防水墙(二代)识别 戳这里→康康你手机号在过多少网站注册过!!! 友情推荐:新一代安全短信 * 验证码地址:https://007.qq.com/online.html * 使用OpenCv模板匹配 * 成功率90%左右…

使用大型语言模(LLM)构建系统(七):评估1

今天我学习了DeepLearning.AI的 Building Systems with LLM 的在线课程,我想和大家一起分享一下该门课程的一些主要内容。之前我们已经学习了下面这些知识: 使用大型语言模(LLM)构建系统(一):分类使用大型语言模(LLM)构建系统(二):内容审核、…

chatgpt赋能Python-python_def函数报错

如何关闭Python Console 在Python编程中,Python Console是一个常用的工具,它可以用来测试和调试代码、查看变量和函数等等。但是,在一些情况下,你可能需要关闭Python Console以便进行其他操作。那么,如何关闭Python C…

chatgpt赋能Python-python_nonetype报错

Python NoneType报错:原因、解决方法和预防措施 Python 是一种面向对象的高级编程语言,用于快速编写脚本和应用程序。但是,当我们在编写 Python 代码时,可能会遇到 NoneType 报错;这是一种类型错误,它发生…

main函数的行参(argc、argv)实例解释

目录 前言 一、问题描述 二、行参含义 三、题目应用 1、代码(重点在中文批注处) 2、执行测试 前言 在做CS50 Week3的problem set--plurality时,遇到main函数里带了两个行参(int argc, string argv[])…

LLM探索:GPT类模型的几个常用参数 Top-k, Top-p, Temperature

Top-k抽样模型从最可能的"k"个选项中随机选择一个如果k10,模型将从最可能的10个单词中选择一个Top-p抽样模型从累计概率大于或等于“p”的最小集合中随机选择一个如果p0.9,选择的单词集将是概率累计到0.9的那部分Temperature控制生成文本随机性…

GPT-4震撼发布:如何加入候补名单

ChatGPT 点燃了科技行业的明灯,GPT-4 能燎原吗? 谁能革得了 ChatGPT 的命?现在看来还是 OpenAI 自己。 在 ChatGPT 引爆科技领域之后,人们一直在讨论 AI「下一步」的发展会是什么,很多学者都提到了多模态,我…

chatgpt赋能python:如何用Python打造一个简单的抽奖程序

如何用Python打造一个简单的抽奖程序 随着互联网的不断发展,抽奖活动已经成为了各种营销活动的必备环节,因此如何快速便捷地实现一个抽奖程序也变得尤为重要。本文将介绍如何使用Python打造一个简单的抽奖程序。 一、抽奖程序的工作原理 抽奖程序的核…

一文读懂 ChatGPT 插件功能:语言模型获取新信息的“眼睛和耳朵”

来源:OpenAI 编译:巴比特 图片来源:由无界 AI工具生成 OpenAI:我们已经在 ChatGPT 中实现了对插件的初步支持。插件是专门为语言模型设计的工具,以安全为核心原则,并帮助 ChatGPT 访问最新的信息&#xff0…

OpenAI 再丢“王炸”:ChatGPT “封印”解除,能联网、搜索了!

整理 | 屠敏 郑丽媛 出品 | CSDN(ID:CSDNnews) 「乱花渐欲迷人眼」,新的一天里,OpenAI 再次丢出“王炸”:ChatGPT 推出插件功能,既能联网,也能开启搜索,还能执行代码和运…