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 的详细介绍和配置示例。你可以根据你的实际需求进行修改。

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

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

相关文章

Git构建分布式版本控制系统

一、版本控制 1、概念&#xff1a; 版本控制&#xff08;Version Control&#xff09;&#xff0c;也被称为版本管理、源代码管理或代码控制&#xff0c;是一种系统和工具&#xff0c;用于跟踪和管理文件、数据或源代码的不同版本和历史记录&#xff0c;在软件开发、文档管理…

jdbc设置StatementTimeout后还需要设置socket timeout参数吗

背景 我们设置JDBC参数时&#xff0c;不管有没有在Statement中配置超时时间StatementTimeout&#xff0c;我们都需要配置jdbc的socket timeout参数&#xff0c;那么为什么这个socket timeout参数如此必要&#xff0c;不设置又会怎么样&#xff1f; 问题真相 首先设置了State…

【Linux笔记】Linux基础权限

【Linux笔记】Linux基础权限 一、Linux权限的概念1.1、Linux中一切皆文件1.2、文件访问者的分类1.3、、Linux中的“用户白名单” 二、文件访问权限的修改2.1、权限的增加和减少的基础方法2.2、以八进制数修改权限 三、用户身份的修改3.1、修改文件的拥有者3.2、修改文件的所属组…

【VSCode】Windows环境下,VSCode 搭建 cmake 编译环境(通过配置文件配置)

除了之前的使用 VSCode 插件来编译工程外&#xff0c;我们也可以使用配置文件来编译cmake工程&#xff0c;主要依赖 launch.json 和 tasks.json 文件。 目录 一、下载编译器 1、下载 Windows GCC 2、选择编译器路径 二、配置 debug 环境 1、配置 lauch.json 文件 2、配置…

10.17课上(七段显示器,递归异或与电路)

异或的递归与数电实现 用二选一选择器实现异或函数 在异或当中&#xff0c;如果有一项为0&#xff0c;就可以把那一项消掉&#xff1b;如果有一项为1&#xff0c;就是把剩下的所有项运算完的结果取反 &#xff08;由此在算法当中可以采用递归解决&#xff09; 当w1为0时&…

百度文心一言 4.0 :如何申请百度文心一言 4.0

本心、输入输出、结果 文章目录 百度文心一言 4.0 &#xff1a;如何申请百度文心一言 4.0前言文心一言 4.0 ERNIE-Bot 4.0 &#xff1a;ERNIE-Bot 4.0 大模型深度测试体验报告如何申请千帆大模型试用百度文心一言 4.0 主要功能介绍配套发布的十余款AI原生应用插件、API 生态 百…

Python办公自动化完全指南(免费PDF)

Python办公自动化可以显著提速办公流程。通过自动执行那些重复繁琐又耗时的任务&#xff0c;大家可以把更多时间用在策略性和有创造性的工作上。 为了帮助大家更好地掌握如何将Python应用于办公自动化&#xff0c;我们整理了100个基本概念&#xff0c;让学习变得更轻松。 学习内…

C++项目实战——基于多设计模式下的同步异步日志系统-⑩-异步缓冲区类与异步工作器类设计

文章目录 专栏导读异步缓冲区设计思想异步缓冲区类设计异步工作器类设计异步日志器设计异步缓冲区类整理异步工作器类整理 专栏导读 &#x1f338;作者简介&#xff1a;花想云 &#xff0c;在读本科生一枚&#xff0c;C/C领域新星创作者&#xff0c;新星计划导师&#xff0c;阿…

[java进阶]——IO流,递归实现多级文件拷贝

&#x1f308;键盘敲烂&#xff0c;年薪30万&#x1f308; 目录 一、认识IO流 二、了解编码与解码 二、IO流体系 三、字节输入输出流 四、字符输入输出流 五、多级文件拷贝 一、认识IO流 IO流也叫输入流(intput)、输出流(onput)&#xff0c;该流就像java程序同硬盘之间的…

2024年申报国自然项目基金撰写及技巧

随着社会经济发展和科技进步&#xff0c;基金项目对创新性的要求越来越高。申请人需要提出独特且有前瞻性的研究问题&#xff0c;具备突破性的科学思路和方法。因此&#xff0c;基金项目申请往往需要进行跨学科的技术融合。申请人需要与不同领域结合&#xff0c;形成多学科交叉…

第0章:怎么入手tensorflow

近年来人工智能的火爆吸引了很多人&#xff0c;网上相关的热门课程报名的人很多&#xff0c;但是坚持下去的人却少。那些晦涩的原理没有一定知识的积累很难能理解。 如果你对人工智能感兴趣&#xff0c;且想利用人工智能去实现某项功能&#xff0c;而不是对人工智能本身感兴趣&…

Linux性能优化--性能工具:磁盘I/O

6.0 概述 本章介绍的性能工具能帮助你评估磁盘I/O子系统的使用情况。这些工具可以展示哪些磁盘或分区已被使用&#xff0c;每个磁盘处理了多少I/O,发给这些磁盘的I/O请求要等多久才被处理。 阅读本章后&#xff0c;你将能够&#xff1a; 确定系统内磁盘I/O的总量和类型(读/写…

【网络安全 --- xss-labs通关】xss-labs靶场通关,让你巩固对xss漏洞的理解及绕过技巧和方法(提供资源)

一&#xff0c;资源下载准备 1-1 VMware 16.0 安装请参考以下博客&#xff0c;若已经安装请忽略&#xff1a; 【网络安全 --- 工具安装】VMware 16.0 详细安装过程&#xff08;提供资源&#xff09;-CSDN博客【网络安全 --- 工具安装】VMware 16.0 详细安装过程&#xff08;…

序列化和反序列化指令在PLC通信上的应用

在了解本篇博客之前&#xff0c;大家可以熟悉下序列化指令的相关介绍&#xff0c;详细内容如下&#xff1a; 博途PLC 1200/1500 PLC 序列化和反序列化指令编程应用_博图序列化和反序列化-CSDN博客序列化最重要的作用&#xff1a;在传递和保存对象时.保证对象的完整性和可传递性…

3. 无重复字符的最长子串

给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。示例 2: 输入: s "bbbbb" 输出: 1 解释: 因为无…

Oracle中数据迁移的工具

SQL*Plus Copy命令 问题描述 怎样在SQL*Plus中实现不同的表之间的数据复制&#xff0c;不论是本地的还是远程的&#xff1f; 问题分析 在SQL*Plus中的copy命令&#xff0c;可以完成远程数据库、本地数据库或Oracle数据库与非Oracle数据库之间的数据复制。其性能与导入/导出相同…

【API篇】四、Flink物理分区算子API

文章目录 1、 分区算子&#xff1a;随机分区2、分区算子&#xff1a;轮询分区3、分区算子&#xff1a;重缩放分区4、分区算子&#xff1a;广播5、分区算子&#xff1a;全局分区6、自定义分区 重分区&#xff0c;即数据"洗牌"&#xff0c;将数据分配到下游算子的并行子…

Apache Shiro 组件反序列化漏洞分析

概述 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。 它的原理比较简单&#xff1a;为了让浏览器或服务器重启后用户不丢失…

嵌入式实时操作系统的设计与开发 (中断管理)

中断发生及响应 硬件抽象HAL层响应 中断请求IRQ被中断控制器汇集成中断向量&#xff08;Interrupt Vector&#xff09;&#xff0c;每个中断向量对应一个中断服务程序ISR&#xff0c;中断向量存放了ISRs的入口地址或ISRs的第一条指令。 系统中通常包含多个中断向量&#xff0…

Linux-ssh

文章目录 远程登录服务器配置远程服务器相关信息创建config文件配置config文件 配置密钥登陆先创建密钥配置密钥文件 执行命令scp传文件copy文件copy文件夹配置我们的vim和tmux 远程登录服务器 ssh userhostnameuser:用户名hostname&#xff1a;IP地址或域名 第一次登陆会显示…