【C++】使用vscode进行 C/C++ 开发,内含c_cpp_properties.json、launch.json 和 tasks.json解释

在这里插入图片描述

在 Visual Studio Code (VSCode) 中进行 C/C++ 开发时,这三个 .json 文件(c_cpp_properties.jsonlaunch.jsontasks.json)分别用于配置编译、调试和代码提示等功能。它们是 VSCode 配置环境的一部分,由 C/C++ 扩展生成,帮助你编写、编译、调试 C/C++ 程序。

1. c_cpp_properties.json

这个文件用于配置 C/C++ 代码的智能提示(IntelliSense)、编译器路径、包括的头文件路径等。它控制了 VSCode 中 C/C++ 代码的代码分析和自动补全功能。

常见的配置项:
  • includePath:指定头文件的搜索路径,VSCode 会根据这些路径提供代码补全和智能提示。
  • defines:定义编译时使用的宏。
  • compilerPath:指定编译器的路径,通常是 gccclang,用于解析代码。
  • intelliSenseMode:指定 VSCode 使用的 IntelliSense 模式,例如 gcc-x64clang-x64
示例 c_cpp_properties.json
{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": [],"compilerPath": "C:/Program Files/MinGW/bin/gcc.exe","cStandard": "c11","cppStandard": "c++17","intelliSenseMode": "gcc-x64"}],"version": 4
}
  • compilerPath:指定 C 编译器的路径(如 gcc)。
  • includePath:头文件的查找路径,VSCode 会根据这些路径为你提供代码补全。
  • intelliSenseMode:控制智能提示和代码解析器的行为,通常与编译器保持一致。

2. launch.json

launch.json 是调试配置文件,用于控制如何启动和调试 C/C++ 程序。它配置了调试器的运行环境,包括执行程序的路径、调试参数、调试类型等。

常见的配置项:
  • program:要调试的可执行文件路径。
  • args:传递给程序的命令行参数。
  • cwd:运行调试时的工作目录。
  • stopAtEntry:是否在程序入口点(如 main 函数)处停住,等待用户操作。
  • miDebuggerPath:调试器的路径,通常是 gdb
示例 launch.json
{"version": "0.2.0","configurations": [{"name": "(gdb) Launch","type": "cppdbg","request": "launch","program": "${workspaceFolder}/a.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "gdb","miDebuggerPath": "C:/Program Files/MinGW/bin/gdb.exe","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "build","internalConsoleOptions": "openOnSessionStart"}]
}
  • program:调试时要运行的可执行文件路径,例如 a.exe
  • miDebuggerPath:GDB 调试器的路径。
  • stopAtEntry:是否在程序入口处暂停。
  • preLaunchTask:调试前需要先运行的任务,比如自动编译。

3. tasks.json

tasks.json 文件用于配置编译任务。它告诉 VSCode 如何编译 C/C++ 代码。通过这个文件,你可以配置各种自动化任务,比如编译、清理项目等。

常见的配置项:
  • label:任务的名称,用于在其他文件中引用(如 launch.json 中的 preLaunchTask)。
  • command:执行的命令,例如 gcc
  • args:传递给命令的参数,例如编译选项和源文件。
  • group:任务的类型,可以是 buildtest
  • problemMatcher:用于匹配编译器输出中的错误信息,以便在 VSCode 中高亮错误。
示例 tasks.json
{"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "gcc","args": ["hello.c","-o","hello.exe"],"group": {"kind": "build","isDefault": true},"problemMatcher": ["$gcc"]}]
}
  • command:编译命令,这里是 gcc
  • args:编译的参数,hello.c 是源文件,-o hello.exe 是输出的可执行文件。
  • group:标记为构建任务。
  • problemMatcher:用来解析编译输出,自动标记出编译错误。

三个文件的关系:

  • c_cpp_properties.json:用于代码智能提示、头文件路径和编译器设置。
  • launch.json:用于配置调试参数,控制如何调试程序。
  • tasks.json:用于定义任务,比如编译 C 文件,可以通过编译任务生成可执行文件。

配置 C/C++ 开发环境:

  • 需要在 tasks.json 中配置好编译任务,确保可以使用 gcc 编译项目。
  • 然后在 launch.json 中配置调试,指定程序的路径和调试器的路径。
  • 最后,c_cpp_properties.json 可以帮助你设置头文件路径和智能提示,确保代码补全功能正常。

总结:

  • c_cpp_properties.json 用于代码智能提示的配置。
  • launch.json 用于调试的配置。
  • tasks.json 用于定义编译任务。

vscode没下载可以借鉴此佬~VSCODE的配置

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

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

相关文章

将java项目jar包打包成exe服务

1.结构展示 2.注意事项 前提: 环境准备:jdk8 和 .net支持 { 1.控制面板》程序和功能》启用和关闭windows功能》.net的勾选》2.jdk8自行百度安装环境3.其他项目必须的软件环境安装等(数据库...) }第一次准备: 1.将打包好的jar包放到premiumServices.exe…

智和信通助力某大型服饰集团建设综合监控运维

某大型服饰集团成立于90年代,是广受认可的国民生活时尚品牌,近年来随着集团公司业务规模的不断扩大,信息化作为支撑集团公司业务发展的重要技术手段,信息系统无论在规模上还是在复杂程度上均有了很大程度的增加。 项目现状 当前信…

计算机网络—vlan(虚拟局域网)

内容补充 冲突域 如果两台设备同时发送数据,他们的数据会互相干扰,那么他们就处于同一冲突域,例如集线器(总线型,所有设备共享带宽)的所有端口都处于冲突域。 广播域 如果一台设备发送数据,…

babylonjs shader学习之copy shadertoy案例

shadertoy案例: 准备 const onSceneReady (scene: Scene) > {const light new HemisphericLight(light, new Vector3(0, 1, 0), scene);light.intensity 0.7;Effect.ShadersStore[planeMatVertexShader] precision highp float;attribute vec3 position;attr…

单片机输出方波

从P1.0上输出一个方波,高电平5ms,低电平10ms. #include〈reg51。h〉 unsigned char flag; sbit outP1^0; void main() { flag0; TMOD0X02; TH06; TL06; TR01; EA1; ET0…

Redis JSON介绍和命令大全

Redis JSON介绍和命令大全 Redis JSON先说说JSON是什么再说说JSON Path先推荐两个网站JSONPath JAVA clents Redis JSON 安装内存json命令语法命令url命令解释JSON.ARRAPPENDJSON.ARRINDEXJSON.ARRINSERTJSON.ARRLENJSON.ARRPOPJSON.ARRTRIMJSON.CLEARJSON.DEBUG MEMORYJSON.DE…

centOS部署Jenkins实现项目可持续自动化部署

个人看的是尚硅谷的视频,跟着实战,但因为视频是21年的,所以很容易出现jenkins插件不适配问题。 因而个人直接用较新版的jdk和jenkins. 先切换到root用户 sudo su一、安装jdk 先查询可安装版本 yum list java*安装jdk(只复制圈…

【算法】归并排序概念及例题运用

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

爬虫日常实战

爬取美团新闻信息,此处采用两种方法实现: 注意点:因为此处的数据都是动态数据,所以一定要考虑好向下滑动数据包会更新的情况,不然就只能读取当前页即第一页数据,方法一通过更新ajax数据包网址页数&#xf…

vscode 预览markdown 文件

1. 点击左边扩展 2. 搜索“Markdown Preview Enhanced” 3. 选第一个安装即可 4. 重启vscode 5. 打开一个markdown 文件 6. 点击右上角的预览按钮

[mysql]mysql的全部单行函数

单行函数 几乎我们认识的语言都会对一些常用的功能进行,封装,有些叫函数,有些叫方法(Java),后期我们还可以自定义函数. 现在我们就当大家是没有语言基础,我们来从头开始讲.不过大家肯定接触过,中学说的函数,yf(x)f代表的就是function的缩写,这里其y2x1fx代表的就是封装的内容…

FileLink内外网文件交换——致力企业高效安全文件共享

随着数字化转型的推进,企业之间的文件交流需求日益增加。然而,传统的文件传输方式往往无法满足速度和安全性的双重要求。FileLink作为一款专注于跨网文件交换的工具,致力于为企业提供高效、安全的文件共享解决方案。 应用场景一:项…

C++大沥2019年真题——数字圈

Hi!大家好!Im#张亿,今天来讲C大沥2019年真题——数字圈 题目描述 当我们写数字时会发现有些数字有封闭区域,有的数字没有封闭区域。 数字 0 有一个封闭区域,数字 1、2、 3 都没有封闭区域,数字 4 有一个封…

word中的内容旋转90度

在vsto、Aspose.Words 中,默认没有直接的 API 可以让表格整体旋转 90 度。然而,我们可以通过一些方式来实现类似的效果,具体思路如下: 将表格插入到一个形状(Shape)或文本框中,然后旋转该形状。…

《RECONX: RECONSTRUCT ANY SCENE FROM SPARSEVIEWS WITH VIDEO DIFFUSION MODEL》论文阅读

论文地址:https://arxiv.org/pdf/2408.16767 项目地址:GitHub - liuff19/ReconX: ReconX: Reconstruct Any Scene from Sparse Views with Video Diffusion Model ---------------------------------------------------------------------------------…

2019年计算机网络408真题解析

第一题: 解析:OSI参考模型第5层完成的功能 首先,我们需要对OSI参考模型很熟悉:从下到上依次是:物理层-数据链路层-网络层- 运输层-会话层-表示层-应用层,由此可知,题目要问的是会话层的主要功能…

什么是感知与计算融合?

感知与计算融合(Perception-Computing Fusion)是指将感知技术(如传感器、摄像头等)与计算技术(如数据处理、人工智能等)有机结合,以实现对环境的更深层次理解和智能反应的过程。该技术广泛应用于…

基于SSM品牌银饰售卖系统的设计

管理员账户功能包括:系统首页,个人中心,用户管理,促销活动管理,饰品管理,我的收藏管理,系统管理,订单管理 用户账号功能包括:系统首页,个人中心,…

新书速览|Android智能座舱开发:从源码到实践

《Android智能座舱开发:从源码到实践》 本书内容 《Android智能座舱开发:从源码到实践》是一本专注于Android智能座舱系统开发与优化的实战指南。《Android智能座舱开发:从源码到实践》共9章,第1章从搭建源码编译环境开始,详细指导读者如何下载和编译An…

活体人脸识别技术总结及实践

文章目录 1、背景2、人脸反伪装技术2.1 活体人脸识别常见模式2.2 学术上反伪装研究 3、工程实现3.1 Silent-Face3.2 Silent-Face模型转rknn3.3 Silent-Face模型的限制 1、背景 1.1 什么是活体检测? 在人脸识别之前,先判断一下屏幕前摄像头捕捉到的人脸是…