当前位置: 首页 > 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;严重时还可能导致生态灾难。氟化物离子如果没有得…...

公司SEO推广有哪些常见的误区需要避免

公司SEO推广有哪些常见的误区需要避免 在数字化营销的时代&#xff0c;公司SEO推广已经成为提升网站流量和品牌知名度的重要手段。在实际操作中&#xff0c;许多企业在SEO推广过程中常常犯下一些常见的误区&#xff0c;这些误区不仅影响了SEO的效果&#xff0c;还可能导致资源…...

别再手动拼URL了!Spring Cloud项目里用OpenFeign调用其他服务,保姆级配置避坑指南

别再手动拼URL了&#xff01;Spring Cloud项目里用OpenFeign调用其他服务&#xff0c;保姆级配置避坑指南 微服务架构下&#xff0c;服务间的HTTP调用是家常便饭。很多开发者还在用RestTemplate手动拼接URL、处理序列化&#xff0c;不仅代码冗长&#xff0c;还容易出错。想象一…...

4款降AI率工具实测横评:最便宜和最贵的效果差多少?

花了几百块&#xff0c;测了一圈&#xff0c;现在把结果告诉你。 降AI率工具、降AI工具保姆级测评2026、降AI这个需求&#xff0c;不同工具之间差距其实挺明显的&#xff0c;不是"随便用一个都一样"。 我的结论&#xff1a;嘎嘎降AI&#xff08;www.aigcleaner.com…...

保姆级教程:用LongCat动物百变秀,快速给猫狗加帽子、换造型

保姆级教程&#xff1a;用LongCat动物百变秀&#xff0c;快速给猫狗加帽子、换造型 1. 为什么选择动物百变秀&#xff1f; 给宠物照片添加创意元素一直是许多人的需求&#xff0c;但传统方法要么需要专业PS技能&#xff0c;要么效果生硬不自然。LongCat动物百变秀解决了这个痛…...

Atmosphere:重新定义Nintendo Switch自制固件的革命性框架

Atmosphere&#xff1a;重新定义Nintendo Switch自制固件的革命性框架 【免费下载链接】Atmosphere Atmosphre is a work-in-progress customized firmware for the Nintendo Switch. 项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere 你是否曾想过&#x…...

PvZ Toolkit:植物大战僵尸PC版终极修改器使用指南

PvZ Toolkit&#xff1a;植物大战僵尸PC版终极修改器使用指南 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 还在为植物大战僵尸中资源不足而烦恼吗&#xff1f;PvZ Toolkit是一款专为植物大战僵尸…...

Python 数据库 ORM 实战:SQLAlchemy 详解

Python 数据库 ORM 实战&#xff1a;SQLAlchemy 详解 1. 背景与动机 ORM&#xff08;对象关系映射&#xff09;简化了数据库操作&#xff0c;使开发者可以使用面向对象的方式操作数据库。SQLAlchemy 是 Python 最强大的 ORM 工具&#xff0c;提供了灵活且功能丰富的数据库操作接…...

基于IEEE39节点系统的风力发电机组并网改造与稳定性研究

基于IEEE39节点系统的风力发电机组并网改造与稳定性研究 摘要 随着可再生能源在电力系统中占比的不断提升,风电并网技术已成为电力系统领域的研究热点。本文针对IEEE39节点标准测试系统,将其工作频率从60Hz改造为50Hz,并将30、32、34、37号节点的同步发电机分别替换为不同…...

开源 ESP32 网络收音机:OLED 界面与编码器交互全解析

1. ESP32网络收音机项目概述 第一次接触ESP32网络收音机项目时&#xff0c;我被这个小小的开发板展现出的强大功能震撼到了。想象一下&#xff0c;一个火柴盒大小的设备&#xff0c;不仅能连接WiFi播放全球各地的网络电台&#xff0c;还能通过OLED屏幕和编码器实现媲美商业产品…...

深度解析ImageToSTL:从二维图像到三维打印模型的技术实现

深度解析ImageToSTL&#xff1a;从二维图像到三维打印模型的技术实现 【免费下载链接】ImageToSTL This tool allows you to easily convert any image into a 3D print-ready STL model. The surface of the model will display the image when illuminated from the left sid…...