vscode编译文件夹下所有文件的配置(包含插件和 .json 文件)

news2025/1/23 17:47:15

文章目录

  • 我所使用的插件
  • .json 文件配置
    • 1. c_cpp_properties.json
    • 2. launch.json
    • 3. settings.json
    • 4. tasks.json
  • 如何运行

我所使用的插件

红框中的五个插件是必备的,其中 Code Runner 插件可以在写完一个 .c.cpp 文件后,按下 Crtl + R 快捷键快速编译运行单个文件。不用 Code Runner 也可以使用 C/C++ Complier 插件,如图二所示。
在这里插入图片描述
在这里插入图片描述

.json 文件配置

这里的 json 文件只是作为我个人的配置,仅供参考使用,并不能适用所有工程。而且配置没有一劳永逸,大部分情况下还是需要根据自己的项目来进行修改,我也在文件中做了部分解释,具体的自行 google。

这里附带一下 vscode 中 json 变量的含义,读者可自行前往查看:Variables Reference。

1. c_cpp_properties.json

{
    "configurations": [
      {
        "name": "Win64",
        "includePath": ["${workspaceFolder}\\**"],  // 表明前往工作空间下寻找包含文件
        "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
        "windowsSdkVersion": "10.0.18362.0",
        "compilerPath": "E:\\VSCode\\mingw64\\bin\\g++.exe",
        "cStandard": "c17",
        "cppStandard": "c++17",
        "intelliSenseMode": "gcc-x64"
      }
    ],
    "version": 4
}

2. launch.json

{
    "version": "0.2.0",
    "configurations": [
      {
        "name": "(gdb) Launch", 
        "type": "cppdbg", 
        "request": "launch", 
        // 需要调试的可执行程序,与 tasks 中的可执行程序的名字需保持一致
        "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
        "args": [], 
        "stopAtEntry": false,
        "cwd": "${workspaceRoot}",
        "environment": [],
        // 该选项设置为 false 则使用外部控制台运行程序,程序结束时会立马关闭控制台,需要在末尾加上 system("pause") 
        "externalConsole": false,                               
        "MIMode": "gdb",
        "miDebuggerPath": "E:\\VSCode\\mingw64\\bin\\gdb.exe",
        "preLaunchTask": "C/C++: g++.exe build active file",    // 与 task 中的 label 需要保持一致
        "setupCommands": [
          {
            "description": "Enable pretty-printing for gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
          }
        ]
      }
    ]
  }

3. settings.json

{
    "files.associations": {
        "*.py": "python",
        "iostream": "cpp",
        "*.tcc": "cpp",
        "string": "cpp",
        "unordered_map": "cpp",
        "vector": "cpp",
        "ostream": "cpp",
        "new": "cpp",
        "typeinfo": "cpp",
        "deque": "cpp",
        "initializer_list": "cpp",
        "iosfwd": "cpp",
        "fstream": "cpp",
        "sstream": "cpp",
        "map": "c",
        "stdio.h": "c",
        "algorithm": "cpp",
        "atomic": "cpp",
        "bit": "cpp",
        "cctype": "cpp",
        "clocale": "cpp",
        "cmath": "cpp",
        "compare": "cpp",
        "concepts": "cpp",
        "cstddef": "cpp",
        "cstdint": "cpp",
        "cstdio": "cpp",
        "cstdlib": "cpp",
        "cstring": "cpp",
        "ctime": "cpp",
        "cwchar": "cpp",
        "exception": "cpp",
        "ios": "cpp",
        "istream": "cpp",
        "iterator": "cpp",
        "limits": "cpp",
        "memory": "cpp",
        "random": "cpp",
        "set": "cpp",
        "stack": "cpp",
        "stdexcept": "cpp",
        "streambuf": "cpp",
        "system_error": "cpp",
        "tuple": "cpp",
        "type_traits": "cpp",
        "utility": "cpp",
        "xfacet": "cpp",
        "xiosbase": "cpp",
        "xlocale": "cpp",
        "xlocinfo": "cpp",
        "xlocnum": "cpp",
        "xmemory": "cpp",
        "xstddef": "cpp",
        "xstring": "cpp",
        "xtr1common": "cpp",
        "xtree": "cpp",
        "xutility": "cpp",
        "stdlib.h": "c",
        "string.h": "c",
        "iomanip": "cpp",
        "array": "cpp",
        "cstdarg": "cpp",
        "cwctype": "cpp",
        "memory_resource": "cpp",
        "optional": "cpp",
        "string_view": "cpp",
        "unordered_set": "cpp",
        "numeric": "cpp",
        "list": "cpp",
        "bitset": "cpp",
        "chrono": "cpp",
        "forward_list": "cpp",
        "regex": "cpp",
        "valarray": "cpp",
        "cfenv": "cpp",
        "charconv": "cpp",
        "cinttypes": "cpp",
        "codecvt": "cpp",
        "complex": "cpp",
        "condition_variable": "cpp",
        "csetjmp": "cpp",
        "csignal": "cpp",
        "cuchar": "cpp",
        "functional": "cpp",
        "ratio": "cpp",
        "future": "cpp",
        "mutex": "cpp",
        "scoped_allocator": "cpp",
        "shared_mutex": "cpp",
        "thread": "cpp",
        "typeindex": "cpp",
        "queue": "cpp",
        "numbers": "cpp"
    },
    "editor.suggest.snippetsPreventQuickSuggestions": false,
    "aiXcoder.showTrayIcon": true,
    "cmake.outputLogEncoding": "auto",
    "C_Cpp.errorSquiggles": "disabled"
  }

4. tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",                                     //任务执行的是shell命令
            "label": "C/C++: g++.exe build active file",
            "command": "E:\\VSCode\\mingw64\\bin\\g++.exe",         //和launch.josn 中的 preLaunchTask 必须一样
            "args": [
                "-fdiagnostics-color=always",                       // 总是输出颜色代码,即便是在伪终端下
                "-g",
                //"${file}", // 编译当前打开(编辑)的 .cpp 文件
                "${fileDirname}\\*.cpp",                            // 编译当前打开的文件所在目录下的所有 .cpp 文件
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",   // 生成的可执行程序的名字 
            ],
            "options": {
                "cwd": "E:\\VSCode\\mingw64\\bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ]
}

如何运行

如何安装 vscode 以及如何安装插件我就不赘述了,读者可以自己搜索一下,这里仅介绍如何创建一个新项目。

新建一个文件夹 TEST,右键用 vscode 打开:
在这里插入图片描述
在 TEST 文件夹中新建 .vscode 文件夹,将四个 json 文件放进去(可以自己新建 .json 后缀的文件):在这里插入图片描述
在 vscode 中,创建 code 文件夹,创建 func.cppfunc.hmain.cpp 这三个文件,内容如下。
在这里插入图片描述
要注意,C++ 中自定义的头文件一定要用双引号 "" 括起来,而不是尖括号 <>,否则编译器会前往库文件中寻找头文件,找不到就会报 “func.h: No such file or directory” 的错误。
在这里插入图片描述
点击上方工具栏中的 Run->Run Without Debugging。
在这里插入图片描述
点击后会出现下面这个,点击红框中所示的选项。
在这里插入图片描述
最后就能成功运行了。
在这里插入图片描述

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

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

相关文章

Zoom | saas企业分销裂变的典范

提到视频通讯&#xff0c;相信大家不会陌生&#xff0c;国外有Skype、Google meeting、Facetime&#xff0c;国内有腾讯会议、钉钉&#xff0c;为什么在如此众多竞争对手的情况下&#xff0c;Zoom能够一马当先&#xff0c;成为行业先锋&#xff1f; 一、公司简介 Zoom是集视频…

【知识点小结】目标检测深度学习算法网络训练时的一些注意事项

验证模型的batch size如何设置&#xff1f; 若输入模型数据shape固定&#xff0c;验证时对batch size无限制若输入模型数据shape不固定&#xff0c;验证时将batch size设置成1 训练模型需要提前热身&#xff1f;&#xff08;Warm-up&#xff09; 主要为了解决初始学习率过大…

CANoe仿真工程Switch控件关联dbc信号出现的问题及解决思路

小白学习CANoe仿真&#xff0c;参考CANoe-第2个仿真工程-XVehicle—1总线数据库设计&#xff08;思路&#xff09;_canoe vehicle-CSDN博客 CANoe-第2个仿真工程-XVehicle1总线数据库设计&#xff08;操作&#xff09;_canoe factor 参数什么意思-CSDN博客CANoe-第2个仿真工程…

深入浅出mysql海量数据批量更新插入、批量查询

1. mysql的批量写 mysql 批量插入可以用下面这种&#xff0c;在values 之后跟上各种多个值列表。但这种写法可能导致sql长度超长、锁超时等问题。 insert into (field1,field1,field1,) values (value01,value02,value03),(value11,value12,value13),(value21,value22,value2…

UML行为图-状态图

概述 创建 UML 状态图的目的是研究类、角色、子系统或组件的实时行为。状态图不仅可用于描述用户接口、设备控制器和其他具有反馈的子系统&#xff0c;还可用于描述在生命期中跨越多个不同性质阶段的被动对象的行为&#xff0c;在每一阶段该对象都有自己特殊的行为。 一、状态…

AI大模型时代必须关注的数据库 DuckDB1.0 正式发布

开源数据库DuckDB1.0 经过内部6年的打磨&#xff0c;积累了30万行代码&#xff0c;1.8万star&#xff0c;2024.06.03号正式发布了1.0版本&#xff08;代号 Snow Duck&#xff09;。 我们新一代程序员&#xff0c;没能见证MySQL 1.0、PostgreSQL 1.0、Windows 1.0、Linux 1.0、…

SpringBoot: 使用GraalVM编译native应用

曾今Go语言里让我最艳羡的两个特性&#xff0c;一个是Goroutine&#xff0c;一个是native编译。 Java 21的虚线程实现了类似Goroutine的能力。Spring Boot 3.x开始提供了GraalVM的支持&#xff0c;现在Spring Boot也能打包成native文件了。 这一篇文章的目标是用一个案例讲解如…

NLP基础——序列模型(动手学深度学习)

序列模型 定义 序列模型是自然语言处理&#xff08;NLP&#xff09;和机器学习领域中一类重要的模型&#xff0c;它们特别适合处理具有时间顺序或序列结构的数据&#xff0c;例如文本、语音信号或时间序列数据。 举个例子&#xff1a;一部电影的评分在不同时间段的评分可能是…

IO流----字节流

字节流 字节流&#xff1a;操作&#xff1a;文件字节输入输出流 &#xff1a;写入数据&#xff1a;读取数据&#xff1a;文件拷贝&#xff1a; 带缓冲区的字节输入输出流&#xff1a;拷贝文件&#xff1a;写入数据&#xff1a;读取数据: 深入 带缓冲区的字节输出流 &#xff1a…

OTTO、亚马逊、Temu卖家如何运用测评补单来提高购买率?

在跨境电商的广阔舞台上&#xff0c;测评补单无疑是一股不可或缺的强劲动力。商家们深知&#xff0c;通过补单这一手段&#xff0c;能够快速为产品注入活力&#xff0c;使销量迅猛攀升&#xff0c;评论如潮涌至&#xff0c;进而在激烈的竞争中脱颖而出&#xff0c;勇攀销量之巅…

论文AI率不达标?AI工具助你一臂之力

告诉大家一个非常残忍的答案&#xff0c;以后所有论文都会被查ai率的。 学术界不仅关注传统的抄袭问题&#xff0c;还增加了一项名为“AIGC检测”的指标。例如知网、维普等平台都能检测论文AI率。 用GPT写论文虽然重复率基本不用担心&#xff0c;但是AI率基本都较高&#xff…

异常概述

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在程序运行过程中&#xff0c;经常会遇到各种各样的错误&#xff0c;这些错误统称为“异常”。这些异常有的是由于开发者将关键字敲错导致的&#xf…

探索魁北克:IT专业人士的移民新天地

在这个数字化飞速发展的时代&#xff0c;IT专业人士无疑是推动社会进步的关键力量。魁北克省&#xff0c;作为加拿大的科技与文化中心&#xff0c;正以其开放的姿态和优越的移民政策&#xff0c;吸引着全球IT精英的目光。今天&#xff0c;让我们一起探索魁北克省为IT专业人士量…

用 DataGridView 控件显示数据

使用DataGridView&#xff0c;可以很方便显示数据。 1.为解决方案添加数据集XSD&#xff0c;用作为项目数据源。 2.拖DataGridView控件到WinForms上。 3.在DataGridView控件的任务处&#xff0c;选择数据源。 4.选好数据源后&#xff0c;VS自动添加DataSet、BindingSourse和T…

2024年5月第四周LLM重要论文总结

本文总结了2024年5月第四周发表的一些最重要的LLM论文。这些论文的主题包括模型优化和缩放到推理、基准测试和增强性能。 LLM发展与基准 1、Towards Modular LLMs by Building and Reusing a Library of LoRAs 基本大型语言模型(LLM)的参数越来越对&#xff0c;这就要求我们研…

nvm for wins下载地方

https://github.com/coreybutler/nvm-windows

使用springboot+vue实现阿里云oss上传

一、前言 我们后端开发中&#xff0c;时常需要用到文件上传的功能&#xff0c;无非是保存到服务器本地或者如阿里云、七牛云这种云存储的方案。本篇介绍一种使用后台springboot结合前端vue实现阿里云oss上传的功能。 二、前端实现过程 前端实现一个通用的上传组件UploadFile…

C# 声音强度图绘制

C# 声音强度图绘制 采集PCM音频数据 音频原来自麦克风 音频源来自录音文件 处理PCM音频数据 将PCM数据进行强度值换算 private void UpdateVoice(double[] audio){// 计算RMS值double rms Math.Sqrt(audio.Select(x > x * x).Average());// 将RMS值转换为分贝值&#x…

【Js】深入浅出的js for循环 for loop以及闭坑指南

在JavaScript中使用forEach循环来删除数组中的特定元素可能会导致一些问题&#xff0c;因为forEach不允许你在迭代过程中修改数组的长度。 这会导致意外的行为&#xff0c;例如跳过元素或错误地索引。因此&#xff0c;建议使用其他方法来安全地删除数组中的元素。 存在的问题 1…

大数据基础问题:在Hive中如何实现全增量统一的UDTF、内置函数、聚合、Join等计算引擎常见算子?

仁者见仁智者见智&#xff0c;每个程序员的方法都不一样&#xff0c;老的程序员和新的程序员之间的思维差距很大&#xff0c;新入公司的和老员工的代码差距也很大。 在Apache Hive中&#xff0c;实现全增量统一的用户定义表生成函数&#xff08;UDTF&#xff09;、内置函数、聚…