当前位置: 首页 > news >正文

C++ 配置VSCode开发环境

C++配置VSCode开发环境

简介

Visual Studio Code (VSCode) 是一款开源的轻量级代码编辑器。它支持许多编程语言,包括C++。本文档将详细介绍如何在Windows环境下配置VSCode的C++开发环境。

安装步骤

1. 安装Visual Studio Code

首先,你需要下载并安装Visual Studio Code。你可以从其官方网站 https://code.visualstudio.com 下载最新版的Visual Studio Code。

2. 安装MinGW

MinGW是一个用于Windows平台的GCC编译器。你可以从其官方网站 https://mingw-w64.org 下载最新版的MinGW。

安装完成后,你需要将MinGW的bin目录添加到系统的PATH环境变量中。具体步骤如下:

  • 打开“控制面板” -> “系统和安全” -> “系统” -> “高级系统设置” -> “环境变量”。
  • 在“系统变量”部分,找到并选择“Path”变量,然后点击“编辑”按钮。
  • 在新的窗口中,点击“新建”按钮,然后输入MinGW的bin目录的路径,例如D:\mingw64\bin
  • 点击“确定”按钮关闭所有窗口。

3. 安装C++插件

在VSCode中,点击左侧边栏的扩展图标,然后在搜索框中输入“c++”。在搜索结果中,找到并安装由Microsoft发布的"C++"插件。

4. 配置VSCode

在VSCode中,打开一个新的C++文件,然后点击右下角的配置按钮(一个齿轮图标),选择"C++"。这将在你的工程目录下创建一个.vscode目录,其中包含两个JSON文件:c_cpp_properties.jsontasks.json

c_cpp_properties.json文件中,你需要配置你的编译器路径和版本。具体内容可能如下:

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG", "UNICODE", "_UNICODE"],"windowsSdkVersion": "10.0.19041.0","compilerPath": "D:/mingw64/bin/gcc.exe","cStandard": "c11","cppStandard": "c++17","intelliSenseMode": "gcc-x64"}],"version": 4
}

tasks.json文件中,你需要配置你的构建任务。具体内容可能如下:

{"version": "2.0.0","tasks": [{"type": "shell","label": "g++ build active file","command": "D:/mingw64/bin/g++.exe","args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.exe"],"options": {"cwd": "D:/mingw64/bin"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true}}]
}

测试你的环境

现在,你可以创建一个新的C++文件来测试你的环境。例如,你可以创建一个名为hello.cpp的文件,内容如下:

#include <iostream>int main() {std::cout << "Hello, World!" << std::endl;return 0;
}

然后,你可以按Ctrl+Shift+B来编译你的程序,如果一切配置正确,你应该可以在你的工程目录下看到一个新的hello.exe文件。运行这个文件,你应该可以看到"Hello, World!"的输出。

c_cpp_properties.jsontasks.json 是 Visual Studio Code 的配置文件,它们分别用于配置 C/C++ 插件的属性和构建任务。

c_cpp_properties.json

c_cpp_properties.json 文件用于配置 C/C++ 插件的属性,例如编译器路径、C/C++ 标准版本、IntelliSense 模式等。以下是一个常见的配置示例:

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG", "UNICODE", "_UNICODE"],"windowsSdkVersion": "10.0.19041.0","compilerPath": "D:/mingw64/bin/gcc.exe","cStandard": "c11","cppStandard": "c++17","intelliSenseMode": "gcc-x64"}],"version": 4
}

在这个示例中:

  • "name" 是配置的名称。
  • "includePath" 是头文件的搜索路径。在这里,我们使用了 ${workspaceFolder}/**,这表示所有在工作区目录及其子目录下的头文件都会被包含在内。
  • "defines" 是预处理器定义。在这里,我们定义了 _DEBUGUNICODE_UNICODE
  • "windowsSdkVersion" 是 Windows SDK 的版本。这个选项通常用于在 Windows 平台上开发。
  • "compilerPath" 是编译器的路径。在这里,我们使用了 MinGW 的 GCC 编译器。
  • "cStandard""cppStandard" 分别是 C 和 C++ 的标准版本。
  • "intelliSenseMode" 是 IntelliSense 的模式。在这里,我们使用了 gcc-x64 模式,这表示我们使用 GCC 编译器,并且目标平台是 x64。

tasks.json

tasks.json 文件用于配置构建任务,例如编译、链接等。以下是一个常见的配置示例:

{"version": "2.0.0","tasks": [{"type": "shell","label": "g++ build active file","command": "D:/mingw64/bin/g++.exe","args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.exe"],"options": {"cwd": "D:/mingw64/bin"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true}}]
}

在这个示例中:

  • "type" 是任务的类型。在这里,我们使用了 shell 类型,这表示任务将在 shell 中执行。
  • "label" 是任务的标签,可以用于在 Visual Studio Code 中识别任务。
  • "command" 是要执行的命令。在这里,我们使用了 g++ 编译器。
  • "args" 是命令的参数。在这里,我们使用了 -g 选项来生成调试信息,${file} 表示当前活动文件,-o 选项用于指定输出文件的名称,${fileDirname}/${fileBasenameNoExtension}.exe 表示输出文件的路径和名称。
  • "options" 是命令的选项。在这里,我们设置了 cwd(当前工作目录)为 g++ 编译器的路径。
  • "problemMatcher" 用于将输出的错误和警告与源代码中的位置关联起来。在这里,我们使用了 $gcc 问题匹配器,这表示我们使用 GCC 编译器。
  • "group" 是任务的组。在这里,我们将这个任务设置为默认的构建任务。

以上就是 c_cpp_properties.jsontasks.json 的详细介绍和配置示例。你可以根据你的实际需求进行修改。

相关文章:

C++ 配置VSCode开发环境

C配置VSCode开发环境 简介 Visual Studio Code (VSCode) 是一款开源的轻量级代码编辑器。它支持许多编程语言&#xff0c;包括C。本文档将详细介绍如何在Windows环境下配置VSCode的C开发环境。 安装步骤 1. 安装Visual Studio Code 首先&#xff0c;你需要下载并安装Visua…...

Arduino_STM32整理贴

Arduion-STM32 stm32duino 让stm32 在arduino中使用 源代码&#xff1a;https://github.com/stm32duino/Arduino_Core_STM32 busybox文件位置 stm32duino 下有个stm32tool 项目&#xff0c;内含有busybox.exe 使用usb转TTL烧写 使用 PA9 PA10 端口 PA9接 RX ,PA10接 TX …...

MoeCTF 2023 Web+Jail wp

----------签到---------- hello CTFer 给了一个URL&#xff0c;是赛博厨子解码base64的flag&#xff0c;flag直接给了。 远程端口转发&#xff1a; 这次比赛估计好多大师傅都没参加&#xff0c;题目环境是在本机内网上的&#xff08;比如localhost:52005&#xff09;导致请…...

494.目标和 474.一和零

目标和 题目 给一个都是正整数的组合&#xff0c;然后你可以在里面任意添加或-&#xff0c;求使得最后结果为 目标和S&#xff08;target&#xff09;的有多少种方法&#xff1f; 范围 数组非空&#xff0c;且长度不会超过 20 。初始的数组的和不会超过 1000 。保证返回的…...

模拟电源与数字电源之间的区别

BOSHIDA 模拟电源与数字电源之间的区别 模拟电源与数字电源是两种不同的电源类型&#xff0c;其核心区别在于电源控制方式和输出特性。本文将从这两方面对模拟电源和数字电源进行比较和分析。 电源控制方式&#xff1a; 模拟电源的控制方式以模拟电压和模拟电流为基础。模拟电…...

P5461 赦免战俘

题目描述 现有 2 n 2 n ( n ≤ 10 ) 2^n\times 2^n (n\le10) 2n2n(n≤10) 名作弊者站成一个正方形方阵等候 kkksc03 的发落。kkksc03 决定赦免一些作弊者。他将正方形矩阵均分为 4 个更小的正方形矩阵&#xff0c;每个更小的矩阵的边长是原矩阵的一半。其中左上角那一个矩阵…...

【工具】转码silk格式为mp3

【工具】转码slk格式为mp3 前提 安装 ffmpeg 【安装】Linux安装ffmpeg_linux安装ffmpeg4.4_我是Superman丶的博客-CSDN博客 GitHub - kn007/silk-v3-decoder: [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to o…...

蓝桥杯每日一题2023.10.18

题目描述 特别数的和 - 蓝桥云课 (lanqiao.cn) 题目分析 简单枚举每一个可行的数 #include<bits/stdc.h> using namespace std; int flag, ans; int main() {int n;cin >> n;for(int i 1; i < n; i ){flag 0;int x i;while(x){int y x % 10;if(y 2 || y…...

大数据开发中的秘密武器:探索Hadoop纠删码的奇妙世界

随着大数据技术的发展&#xff0c;HDFS作为Hadoop的核心模块之一得到了广泛的应用。为了系统的可靠性&#xff0c;HDFS通过复制来实现这种机制。但在HDFS中每一份数据都有两个副本&#xff0c;这也使得存储利用率仅为1/3&#xff0c;每TB数据都需要占用3TB的存储空间。因此&…...

华为数通方向HCIP-DataCom H12-831题库(单选题:301-310)

第301题 关于配置防火墙安全区域的安全级别的描述,错误的是 A、同一系统中,两个安全区域不允许配置相同的安全级别 B、只能为自定义的安全区域设定安全级别 C、安全级别一旦设定不允许更改 D、新建的安全区域,系统默认其安全级别为1 答案:D 解析: 新创建的安全区域缺省未…...

Vite 踩坑 —— require is not defined

动态require引入图片报错 require 是属于 Webpack 的方法&#xff0c;而我使用的是 Vite&#xff0c;所以我们需要去寻找 Vite 静态资源处理的方法 所以&#xff0c;我们只需要将代码改写以下形式即可。 ​ template <CarouselItem v-for"(item,index) of carous…...

彻底理解操作系统与内核的区别!

通用底盘技术 Canoo公司有一项核心技术专利&#xff0c;这就是它们的通用电动底盘技术&#xff0c;长得是这个样子&#xff0c;非常像一个滑板&#xff1a; 这个带轮子、有电池、能动的滑板已经包含了一辆车最核心的组件&#xff0c;差的就是一个外壳。这个看起来像滑板的东西…...

微信小程序4

一自定义组件应用 1.介绍 微信小程序自定义组件是指开发者可以自定义组件&#xff0c;将一些常用的 UI 元素封装成一个自定义组件&#xff0c;然后在多个页面中复用该组件&#xff0c;实现代码复用和页面性能优化的效果。 2.自定义组件分为两种类型 组件模板类型&#xff1a;…...

OpenCV14-图像平滑:线性滤波和非线性滤波

OpenCV14-图像平滑&#xff1a;线性滤波和非线性滤波 1.图像滤波2.线性滤波2.1均值滤波2.2方框滤波2.3高斯滤波2.4可分离滤波 3.非线性滤波3.1中值滤波3.2双边滤波 1.图像滤波 图像滤波是指去除图像中不重要的内容&#xff0c;而使关心的内容表现得更加清晰的方法&#xff0c;…...

kafka_2.10启动Kafka broker

要启动 Kafka broker&#xff0c;你需要执行以下步骤&#xff1a; 首先&#xff0c;确保你已经安装了 Kafka。你可以从 Apache Kafka 的官方网站下载 Kafka 的二进制发行版&#xff0c;并按照官方文档中的说明进行安装。 在安装完成后&#xff0c;进入 Kafka 的安装目录。 打…...

【配置环境】SQLite数据库安装和编译以及VS下C++访问SQLite数据库

一&#xff0c;环境 Windows 11 家庭中文版&#xff0c;64 位操作系统, 基于 x64 的处理器SQLite - 3.43.2Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.5.3 二&#xff0c;SQLite简介 简要介绍 SQLite&#xff08;Structured Query Language for Lite&a…...

Confluence 自定义展示页面

1. 概述 Confluence 作为知识库可通过JS脚本方式&#xff0c;根据登录用户或用户组进行前端页面的自定义 2. 实现方式 Confluence →管理→自定义HTML 嵌入对应JS脚本&#xff0c;示例如下 <script type"text/javascript">jQuery(#footer).html(<div>…...

使用C#的Socket从头实现的带有文件上传和下载功能的HTTP服务器

使用C#和Socket从头实现的带有文件上传和下载功能的HTTP服务器。它支持GET、POST请求方法&#xff0c;并能处理URL参数、请求体以及文件上传和下载。 using System; using System.IO; using System.Net; using System.Net.Sockets; using System.Text;class HttpServer {publi…...

【OSPF Loading、FULL状态与display ospf peer brief命令、OSPF的数据库讲解】

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生&#xff0c;喜欢编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️ 零基…...

除氟树脂在工业、市政含氟废水处理中的应用

含氟废水的不达标排放对自然环境有很大的危害&#xff0c;氟化物离子可以累积在土壤和水体中&#xff0c;从而对生态系统造成破坏。大量的氟化物离子会对植物生长产生不良影响&#xff0c;并对水生生物造成毒性作用&#xff0c;严重时还可能导致生态灾难。氟化物离子如果没有得…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

全面解析数据库:从基础概念到前沿应用​

在数字化时代&#xff0c;数据已成为企业和社会发展的核心资产&#xff0c;而数据库作为存储、管理和处理数据的关键工具&#xff0c;在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理&#xff0c;到社交网络的用户数据存储&#xff0c;再到金融行业的交易记录处理&a…...

用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法

用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...

算法250609 高精度

加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...

接口 RESTful 中的超媒体:REST 架构的灵魂驱动

在 RESTful 架构中&#xff0c;** 超媒体&#xff08;Hypermedia&#xff09;** 是一个核心概念&#xff0c;它体现了 REST 的 “表述性状态转移&#xff08;Representational State Transfer&#xff09;” 的本质&#xff0c;也是区分 “真 RESTful API” 与 “伪 RESTful AP…...

ffmpeg(三):处理原始数据命令

FFmpeg 可以直接处理原始音频和视频数据&#xff08;Raw PCM、YUV 等&#xff09;&#xff0c;常见场景包括&#xff1a; 将原始 YUV 图像编码为 H.264 视频将 PCM 音频编码为 AAC 或 MP3对原始音视频数据进行封装&#xff08;如封装为 MP4、TS&#xff09; 处理原始 YUV 视频…...

Unity VR/MR开发-开发环境准备

视频讲解链接&#xff1a; 【XR马斯维】UnityVR/MR开发环境准备【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...