【转载】 vscode如何在最新版本中配置c/c++语言环境中的launch.json和tasks.json?
作者:来知晓
链接:https://www.zhihu.com/question/336266287/answer/2144611720
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
===============================================================
目录
总体说明
总体特点:
- JSON(JavaScript Object Notation) 是基于JavaScript的一种数据交换语言
- 核心文件:
tasks.json / launch.json - 其他文件:
c_cpp_propertis.json / settings.json / compile_commands.json - 辅助插件:C/C++
主要作用:
<img src="https://pic1.zhimg.com/50/v2-208cac174568afb32d1fa2737073658e_720w.jpg?source=1940ef5c" data-caption="" data-size="normal" data-rawwidth="789" data-rawheight="299" class="origin_image zh-lightbox-thumb" width="789" data-original="https://pic2.zhimg.com/v2-208cac174568afb32d1fa2737073658e_r.jpg?source=1940ef5c"/>
复用参考配置文件关键点:
- 拿到demo配置文件,参考tasks.json和launch.json,修改对应gdb/gcc路径和源文件、头文件等
- 保证lauch调用的exe名与tasks生成的exe名一致,修改完毕后,
ctrl + shift + b或点击终端->运行生成任务,即调用tasks.json,生成exe - 快捷键F5运行或者点击左侧栏乌龟加播放按钮找到左上角绿色播放按钮,开始调试,即
调用lauch.json,运行exe
举例说明
main.c为例,配置如下:main.c
#include <stdio.h>
int main()
{
printf("Hi World!\n");
return 0;
}
目录结构
- .vscode
- tasks.json
- launch.json
- main.c
tasks.json
模板如下:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Build", // 需与lauch.json中"preLaunchTask"项命名一致
"type": "shell",
"command": "D:\\xx\\mingw\\bin\\gcc.exe",
"args": [
"main.c",
"-g",
"-o",
"main.exe" // 输出exe名,要与launch中调用的program项命名一致
],
"group": {
"kind": "build",
"isDefault": true
},
// Use the standard MS compiler pattern to detect errors, warnings and infos
"problemMatcher": [
"$gcc"
]
}
]
}
launch.json
模板如下:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gdbdebug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}\\main.exe", // 调用的exe名,要与tasks生成的exe名一致
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true, // 决定输出是单独外部黑窗口显示,还是在IDE里终端黑窗口显示
"MIMode": "gdb",
"miDebuggerPath": "D:\\xx\\mingw\\bin\\gdb.exe",
"preLaunchTask": "Build", // 此项命名需要与tasks.json中的label项命名一致,作用是每次调用launch时会先调用tasks.json,从而不用自己每次都ctrl+shift+b手动生成最新任务后,才能调用launch
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
重要参数说明:
program选项为要调试程序的路径,此处为main.exeargs为运行时添加的参数stopAtEntry选项默认为false,若设置为true,则会在函数入口中暂停externalConsole为是否在外部控制外运行,设置为true会弹出windows的运行窗口miDebuggerPath为gbd调试器的路径setupCommands为启动调试前为GDB调试器设置相应的命令preLaunchTask选项为运行调试前执行的任务
其他json
c c_cpp_propertis.json / settings.json / compile_commands.json可通过插件自动生成,并做相应的配置调节,不再赘述。
编译提示找不到gcc任务
- 根因:tasks.json里的label名字和launch.json中的preLaunchTask名字没对应上,导致编译后launch不到对应exe
- 分析:tasks.json是编译,launch.json是运行exe,tasks.json在lanuch之前。tasks里的label一定要跟launch.json中的preLaunchTask名字对应一致。之后则不会报找不到gcc任务错误。
多个main函数入口,导致编译中止。提示:multiple definition of 'main'
- 删除掉有关.c文件即可,让这些含main的不参与编译。
- 或者在tasks.json中排除掉其余main函数相关的c文件,让其不参与编译即可。
【转载】 vscode如何在最新版本中配置c/c++语言环境中的launch.json和tasks.json?的更多相关文章
- IDEA中配置Scala开发编译环境
安装JDK 因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK. 安装Scala Windows安装Scala编译器 访问Scala官网http://www.scala-lang ...
- 折腾了好久的vscode配置c/c++语言环境(Windows环境下)
最近有c语言相关的作业,但是突然再次拿起大一的时候那些c语言编辑器的时候,总觉得不智能,于是下了一个vscode,准备配一个c语言的环境 步骤如下: 1.vs官网下载好vscode,安装好以后再下载一 ...
- 使用pipework将Docker容器配置到本地网络环境中
使用pipework将Docker容器配置到本地网络环境中 需求 在使用Docker的过程中,有时候我们会有将Docker容器配置到和主机同一网段的需求.要实现这个需求,我们只要将Docker容器和主 ...
- 在R语言环境中无法载入rJava包的解决办法
问题描述: 安装包xlsx包后,运行library("xlsx")后弹出错误窗口: RGui (64-bit): Rgui.exe - 系统错误 无法启动此程序,因为计算机中丢失 ...
- ionic2如何升级到最新版本、配置开发环境
好久没写东西了,去年用了angular2的RC版本和ionic2写了一个项目,因为开发周期和有些版本不稳定,所以一直没有升级,ng2新版本引用Aot打包,听说优化还不错,现在尝试升级ioni ...
- 在VMware虚拟机中配置DOS汇编开发环境!!
操作系统:win7 32位 DOS环境:DosBox 下载:http://www.dosbox.com/ 选择当前适合自己版本,下载就可以了. 汇编编译器:MASM 5.0 下载:http://do ...
- ASP.Net Core 中使用Zookeeper搭建分布式环境中的配置中心系列一:使用Zookeeper.Net组件演示基本的操作
前言:马上要过年了,祝大家新年快乐!在过年回家前分享一篇关于Zookeeper的文章,我们都知道现在微服务盛行,大数据.分布式系统中经常会使用到Zookeeper,它是微服务.分布式系统中必不可少的分 ...
- vsCode怎么为一个前端项目配置ts的运行环境
vsCode为一个前端项目配置ts的运行环境,ts文件保存的时候自动编译成js文件: 假设此前端项目名称为Web:文件结构如图 1. 在根目录中新建一个“.vscode”文件夹,里面建一个“tasks ...
- vscode中关于launch.json和tasks.json的变量说明
vscode是一个轻量级的文本编辑器,但是它的拓展插件可以让他拓展成功能齐全的IDE,这其中就靠的是tasks.json和launch.json的配置 这两个json文件的相关变量是vscode特有的 ...
- 在VS2008中配置WDK7600驱动开发环境
网上这类资料多如牛毛,也许很多人都是转来转去,却很有人去真正的测试,有时候感觉确实对他人也是一种误导. 这里是我自己在VS2008 + WDK7600.16385.0 + DDKWizard配置自己的 ...
随机推荐
- windows powershell 解压 .gz文件
windows 10下解压.gz后缀文件 打开windows powershell界面,(1)输入cd desktop(文件的存储位置,示例为存储在电脑桌面上), (2)输入tar -zxvf 需要解 ...
- C# .net core中如何将多张png图片合并成一个gif
背景 我们有很多这样的序列帧: 我这边要把这些序列帧裁切最后合并成gif,以下是我裁切后的png文件: 我一开始选用的是 SixLabors.ImageSharp 这是裁切代码: using var ...
- 详解Web应用安全系列(2)注入漏洞之XSS攻击
上一篇介绍了SQL注入漏洞,今天我们来介绍另一个注入漏洞,即XSS跨站脚本攻击.XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web应用中常见的漏洞.指攻击者在网页中嵌入 ...
- C# pythonnet(2)_傅里叶变换(FFT)
Python代码如下 import pandas as pd import numpy as np import matplotlib.pyplot as plt # 读取数据 data = pd.r ...
- P2467 [SDOI2010] 地精部落 学习笔记
DP 显然我固定第一个是峰,然后再乘以2就是答案,因为一个合法的反转之后也是合法的而且谷峰颠倒了 发现如果设\(dp[i][j]\)表示前\(i\)个山脉,第\(i\)个山脉是高度\(j\)的答案,然 ...
- 基于 UDP 的 组播、广播详解
背景 有些时候我们在网络通信中也需要用到 组播(多播).广播.现在我们来介绍如何实现. 建议:在此之前,关闭防火墙. ubuntu: service ufw stop windows: 控制面板关闭 ...
- uniapp+thinkphp5实现微信扫码支付(APP支付)
前言 统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口.下面介绍的是其中APP的支付的配置与实现流程 配置 1.首先登录 ...
- Linux Mint操作系统安装
1,Linux 发行版 什么是Linux 发行版呢?这要从Linux 来源说起.Unix操作系统后期,开始收费和商业闭源了.一个叫Richard Stallman 的人就发起 GNU 计划,想模仿U ...
- 解决BitBucket仓库较大拉取失败,使用SSH拉取
HTTPS 拉取 如果使用的是https拉取,可使用以下命令尝试,如果还是失败,可使用 ssh 拉取 git clone --depth=1 xxxx.git --depth=1:拉取最近1次提交记录 ...
- Java常见问题-汇总
一.面试到底在问些什么东西? 首先你要知道,面试官的提问和你简历上写的内容是紧密联系的,所以你简历上写的技能一定要会. 一般面试包括下面几方面知识类型: Java基础.多线程.IO与NIO.虚拟机.设 ...