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.json
和tasks.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.json
和 tasks.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"
是预处理器定义。在这里,我们定义了_DEBUG
、UNICODE
和_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.json
和 tasks.json
的详细介绍和配置示例。你可以根据你的实际需求进行修改。
相关文章:
C++ 配置VSCode开发环境
C配置VSCode开发环境 简介 Visual Studio Code (VSCode) 是一款开源的轻量级代码编辑器。它支持许多编程语言,包括C。本文档将详细介绍如何在Windows环境下配置VSCode的C开发环境。 安装步骤 1. 安装Visual Studio Code 首先,你需要下载并安装Visua…...
Arduino_STM32整理贴
Arduion-STM32 stm32duino 让stm32 在arduino中使用 源代码:https://github.com/stm32duino/Arduino_Core_STM32 busybox文件位置 stm32duino 下有个stm32tool 项目,内含有busybox.exe 使用usb转TTL烧写 使用 PA9 PA10 端口 PA9接 RX ,PA10接 TX …...

MoeCTF 2023 Web+Jail wp
----------签到---------- hello CTFer 给了一个URL,是赛博厨子解码base64的flag,flag直接给了。 远程端口转发: 这次比赛估计好多大师傅都没参加,题目环境是在本机内网上的(比如localhost:52005)导致请…...
494.目标和 474.一和零
目标和 题目 给一个都是正整数的组合,然后你可以在里面任意添加或-,求使得最后结果为 目标和S(target)的有多少种方法? 范围 数组非空,且长度不会超过 20 。初始的数组的和不会超过 1000 。保证返回的…...

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

P5461 赦免战俘
题目描述 现有 2 n 2 n ( n ≤ 10 ) 2^n\times 2^n (n\le10) 2n2n(n≤10) 名作弊者站成一个正方形方阵等候 kkksc03 的发落。kkksc03 决定赦免一些作弊者。他将正方形矩阵均分为 4 个更小的正方形矩阵,每个更小的矩阵的边长是原矩阵的一半。其中左上角那一个矩阵…...
【工具】转码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纠删码的奇妙世界
随着大数据技术的发展,HDFS作为Hadoop的核心模块之一得到了广泛的应用。为了系统的可靠性,HDFS通过复制来实现这种机制。但在HDFS中每一份数据都有两个副本,这也使得存储利用率仅为1/3,每TB数据都需要占用3TB的存储空间。因此&…...

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

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

彻底理解操作系统与内核的区别!
通用底盘技术 Canoo公司有一项核心技术专利,这就是它们的通用电动底盘技术,长得是这个样子,非常像一个滑板: 这个带轮子、有电池、能动的滑板已经包含了一辆车最核心的组件,差的就是一个外壳。这个看起来像滑板的东西…...
微信小程序4
一自定义组件应用 1.介绍 微信小程序自定义组件是指开发者可以自定义组件,将一些常用的 UI 元素封装成一个自定义组件,然后在多个页面中复用该组件,实现代码复用和页面性能优化的效果。 2.自定义组件分为两种类型 组件模板类型:…...
OpenCV14-图像平滑:线性滤波和非线性滤波
OpenCV14-图像平滑:线性滤波和非线性滤波 1.图像滤波2.线性滤波2.1均值滤波2.2方框滤波2.3高斯滤波2.4可分离滤波 3.非线性滤波3.1中值滤波3.2双边滤波 1.图像滤波 图像滤波是指去除图像中不重要的内容,而使关心的内容表现得更加清晰的方法,…...
kafka_2.10启动Kafka broker
要启动 Kafka broker,你需要执行以下步骤: 首先,确保你已经安装了 Kafka。你可以从 Apache Kafka 的官方网站下载 Kafka 的二进制发行版,并按照官方文档中的说明进行安装。 在安装完成后,进入 Kafka 的安装目录。 打…...

【配置环境】SQLite数据库安装和编译以及VS下C++访问SQLite数据库
一,环境 Windows 11 家庭中文版,64 位操作系统, 基于 x64 的处理器SQLite - 3.43.2Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.5.3 二,SQLite简介 简要介绍 SQLite(Structured Query Language for Lite&a…...

Confluence 自定义展示页面
1. 概述 Confluence 作为知识库可通过JS脚本方式,根据登录用户或用户组进行前端页面的自定义 2. 实现方式 Confluence →管理→自定义HTML 嵌入对应JS脚本,示例如下 <script type"text/javascript">jQuery(#footer).html(<div>…...
使用C#的Socket从头实现的带有文件上传和下载功能的HTTP服务器
使用C#和Socket从头实现的带有文件上传和下载功能的HTTP服务器。它支持GET、POST请求方法,并能处理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的数据库讲解】
个人名片: 🐼作者简介:一名大二在校生,喜欢编程🎋 🐻❄️个人主页🥇:落. 🐼个人WeChat:hmmwx53 🕊️系列专栏:🖼️ 零基…...

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

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...