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 🕊️系列专栏:🖼️ 零基…...
 
除氟树脂在工业、市政含氟废水处理中的应用
含氟废水的不达标排放对自然环境有很大的危害,氟化物离子可以累积在土壤和水体中,从而对生态系统造成破坏。大量的氟化物离子会对植物生长产生不良影响,并对水生生物造成毒性作用,严重时还可能导致生态灾难。氟化物离子如果没有得…...
 
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
 
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
 
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
 
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
 
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
 
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
 
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
