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

windows配置C++编译环境和VScode C++配置(保姆级教程)

1.安装MinGW-w64

MinGW-w64是一个开源的编译器套件,适用于Windows平台,支持32位和64位应用程序的开发。它包含了GCC编译器、GDB调试器以及其他必要的工具,是C++开发者在Windows环境下进行开发的重要工具。
我找到了一个下载比较快的链接:https://gitcode.com/open-source-toolkit/1f790/overviewutm_source=highlight_word_gitcode&word=MinGW-w64&isLogin=1
解压后需要配置环境变量,以我的为例。

第一步

将bin文件夹的路径复制:E:\c++\mingw64\bin
在这里插入图片描述

第二步

*在开始菜单旁边的搜索框中输入环境变量,然后点击打开
在这里插入图片描述

  • 点击环境变量
    在这里插入图片描述

  • 双击系统变量中的Path
    在这里插入图片描述

  • 然后点击新建按钮,将刚才复制的路径添加进去,最后点击确定即可。
    在这里插入图片描述

  • 做完上述步骤后,可打开cmd进行验证。输入gcc -v 命令,若出现版本信息则配置成功。
    在这里插入图片描述
    到此,MinGW-w64就安装完毕了

2.安装VScode

  • 下载地址:https://code.visualstudio.com/Download
    这里大家可以参考文章:https://blog.csdn.net/MSDCP/article/details/127033151

  • 这里建议大家先汉化,安装插件重启即可。具体步骤如下图所示:
    在这里插入图片描述

3.配置文件

1.task.json
  • 首先我们在创建一个文件夹test,然后点击VSCode中的文件->打开文件夹,选择刚创建的文件夹。然后点击箭头所指的按钮,创建一个1.cpp文件。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 编辑如下代码
#include <iostream>
using namespace std;int main() 
{cout << "Hello, World!";return 0;
}

在这里插入图片描述

  • 点击终端->配置默认生成任务
    在这里插入图片描述
  • 在跳出来的界面中选择有g++的选项,然后会自动跳出一个task.json文件
    在这里插入图片描述
  • 然后用下述代码替换task.json中的内容
{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: g++.exe 生成活动文件","command": "E:\\c++\\mingw64\\bin\\g++.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "编译器: E:\\c++\\mingw64\\bin\\g++.exe"}]
}
  • 将下述中commanddetail替换成自己的实际目录,注意使用/ or\\
    在这里插入图片描述
2.launch.json
  • 接下来配置launch.json文件,该文件是针对程序运行的。点击Run(R)->添加配置->选择C/C++:(gdb)启动,将下边的代码复制到launch.json文件中
    在这里插入图片描述
{"configurations": [{"name": "(gdb) 启动","type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "E:/c++/mingw64/bin/gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "将反汇编风格设置为 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}],"preLaunchTask": "C/C++: g++.exe 生成活动文件"}]
}

在这里插入图片描述

  • 将其中miDebuggerPath替换成自己的实际目录,注意使用/ or \\,其中externalConsole 指定程序运行时的输入和输出的窗口将在界面下方的终端,将其false改为true将在黑框中输入和输出。
3.c_cpp_properties.json

接下来配置c_cpp_properties.json文件,该配置文件针对于C/C++的相关拓展的,首先按下Ctrl+Shift+P以打开全局搜索,输入C/C++并在搜索结果中选择C/C++: 编辑配置(UI)
在这里插入图片描述

点击该选项,我们会打开一个设置的图形界面,如下图所示。
在这里插入图片描述
然后会自动生成 c_cpp_properties.json配置文件,我生成的内容如下:
在这里插入图片描述
其中 “compilerPath”: 后的路径需修改成自己的
下边是我这个文件中的代码

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "E:\\c++\\mingw64\\bin\\gcc.exe","cStandard": "c17","cppStandard": "gnu++14","intelliSenseMode": "windows-gcc-x64"}],"version": 4
}
最后效果

在这里插入图片描述
注:我感觉这三个配置文件是针对当前文件夹的,加入你再创建一个文件夹可能需要重新操作上述步骤,或者把.vscode这个文件夹复制到你创建的文件夹中应该也可以。

4.安装扩展

  • C/C++ Extension Pack:一些常用的C/C++拓展
  • Code Runner:代码运行器

5.结尾

  • 最后,我们打开1cpp文件,点击运行->以非调试模式运行,若在终端出现Hello world的输出,说明配置是OK的
    在这里插入图片描述
    在这里插入图片描述

参考文章:

  • 1.VSCode安装配置使用教程(最新版超详细保姆级含插件)一文就够了:https://blog.csdn.net/MSDCP/article/details/127033151
  • 2.全网最详细保姆级VSCode配置C/C++教程(基于官方文档):https://blog.csdn.net/qq_50813669/article/details/124461328
  • 3.Vscode调试环境配置解决The preLaunchTask‘C/C++: gcc.exe build active file‘ 的方法:https://blog.csdn.net/qq_38604345/article/details/126898103

相关文章:

windows配置C++编译环境和VScode C++配置(保姆级教程)

1.安装MinGW-w64 MinGW-w64是一个开源的编译器套件&#xff0c;适用于Windows平台&#xff0c;支持32位和64位应用程序的开发。它包含了GCC编译器、GDB调试器以及其他必要的工具&#xff0c;是C开发者在Windows环境下进行开发的重要工具。 我找到了一个下载比较快的链接&#…...

【微信小程序前端开发】入门Day03 —— 页面导航、事件、生命周期、WXS 脚本及自定义组件

1. 页面导航 导航方式 声明式导航&#xff1a;使用<navigator>组件实现页面跳转。 <!-- 导航到tabBar页面 --> <navigator url"/pages/message/message" open-type"switchTab">导航到消息页面</navigator><!-- 导航到非tabBar页…...

【51单片机】点亮LED之经典流水灯

开发环境 开发板&#xff1a;普中51-单核-A2单片机&#xff1a;STC89C52RC&#xff08;双列直插40引脚 DIP40&#xff09;Keil uVision5 v9.61 最新版破解方法自行百度&#xff0c;相关文档和视频资料很多&#xff0c;我自己将这一操作记录下来当做博客发布&#xff0c;CSDN以…...

深度学习数据增强的常用方法

以下是在深度学习中经常使用的图像增强的方法 目录 前言 1、加噪声 2、调整亮度 3、cutout 4、旋转 5、对比度增强 6、仿射变化扩充图像 7、HSV数据增强 8、错切变化扩充图像 9、平移扩充图像&#xff0c;根图像移动的像素距离可自行调整&#xff0c;具体方法如下注释所示 10、…...

影院管理新篇章:小徐的Spring Boot应用

第三章 系统分析 整个系统的功能模块主要是对各个项目元素组合、分解和更换做出对应的单元&#xff0c;最后在根据各个系统模块来做出一个简单的原则&#xff0c;系统的整体设计是根据用户的需求来进行设计的。为了更好的服务于用户要从小徐影城管理系统的设计与实现方面上做出…...

【H2O2|全栈】关于CSS(9)CSS3扩充了哪些新鲜的东西?(二)

目录 CSS3入门 前言 准备工作 伪元素补充 :before :after 文本溢出属性 转换效果 预告和回顾 后话 CSS3入门 前言 本系列博客主要介绍CSS相关的知识点。 这一期主要介绍以下几个CSS3的知识点&#xff1a; 伪元素补充文本溢出属性转换 没有基础的朋友&#xff…...

java中Files和File对象详情和区别比较

Files 和 File 是 Java 中用于文件处理的两个不同类&#xff0c;分别属于 java.nio.file 和 java.io 包&#xff0c;它们的设计思路和用途有所不同。以下是它们的详细区别&#xff1a; 1. File 对象 File 是 Java 中最早用于处理文件和目录的类&#xff0c;它来自 java.io 包&…...

Unity3D PostLateUpdate为何突然占用大量时间详解

在Unity3D中&#xff0c;直接名为PostLateUpdate的函数并不是Unity标准API中的一部分。然而&#xff0c;这个术语可能指的是在LateUpdate之后执行的某些自定义逻辑或Unity内部机制中的某种后续处理。当提到PostLateUpdate或LateUpdate突然占用大量时间时&#xff0c;我们需要考…...

如何快速熟悉项目

背景 最近新入职&#xff0c;对项目很不熟悉&#xff0c;也不能全部依赖别人&#xff08;别人也不会全心全意去帮你&#xff09;&#xff0c;你大部分还是只能靠自己。材料就是&#xff1a;文档&#xff0c;代码&#xff0c;开发环境。 但是文档&#xff0c;代码&#xff0c;都…...

Spring Boot实现新闻个性化推荐

1系统概述 1.1 研究背景 如今互联网高速发展&#xff0c;网络遍布全球&#xff0c;通过互联网发布的消息能快而方便的传播到世界每个角落&#xff0c;并且互联网上能传播的信息也很广&#xff0c;比如文字、图片、声音、视频等。从而&#xff0c;这种种好处使得互联网成了信息传…...

优化后的版本

docker_operations.sh #!/bin/bash# all definition NETWORK_NAME"net-1" VOLUME_MOUNT"-v /home/norten/Public/tools:/mnt" # 容器内部挂载到主机的路径 SCRIPT_ROUTE"/mnt" # container_run_medium.sh所在的路径 IMAGE_NAME"ubuntu&quo…...

【Linux系统编程】第二十七弹---文件描述符与重定向:fd奥秘、dup2应用与Shell重定向实战

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、文件描述符fd 1.1、0 & 1 & 2 1.2、文件描述符的分配规则 2、重定向 3、使用 dup2 系统调用 3.1、> 输出…...

开放式耳机哪个品牌好?好用且高性价比的开放式蓝牙耳机推荐

相信很多经常运动的朋友都不是很喜欢佩戴入耳式耳机&#xff0c;因为入耳式耳机真的有很多缺点。 安全方面&#xff1a;在安全上就很容易存在隐患&#xff0c;戴上后难以听到周围环境声音&#xff0c;像汽车鸣笛、行人呼喊等&#xff0c;容易在运动中发生意外。 健康方面&…...

区间合并——模板题

题目描述 给定 n 个区间 [li, ri]&#xff0c;要求合并所有有交集的区间。注意如果在端点处相交&#xff0c;也算有交集。 输出合并完成后的区间个数。 例如&#xff1a;[1, 3] 和 [2, 6] 可以合并为一个区间 [1, 6]。 输入格式 第一行包含整数 n 。 接下来 n 行&#xff0c…...

Microsoft Edge 五个好用的插件

&#x1f423;个人主页 可惜已不在 &#x1f424;这篇在这个专栏 插件_可惜已不在的博客-CSDN博客 &#x1f425;有用的话就留下一个三连吧&#x1f63c; 目录 Microsoft Edge 一.安装游览器 ​编辑 二.找到插件商店 1.打开游览器后&#xff0c;点击右上角的设置&#…...

解决 遇到JWT中claims中获取不到数据的问题

1.先介绍一下JWT的常规流程 用户进行登录将token储存到redis&#xff0c;然后进行其他需要验证的操作时进行验证&#xff0c;比如使用拦截器进行验证&#xff0c;那么id存储的到claims&#xff0c;因为可以在拦截器验证时将其存放到ThreadLocal中&#xff0c;这样通过ThreadLo…...

会议平台后端优化方案

会议平台后端优化方案 通过RTC的学习&#xff0c;我了解到了端对端技术&#xff0c;就想着做一个节省服务器资源的会议平台 之前做了这个项目&#xff0c;快手二面被问到卡着不知如何介绍&#xff0c;便有了这篇文章 分析当下机制 相对于传统视频平台&#xff08;SFU&#xff…...

unixODBC编程(十)分片插入长数据

遇到有LONG数据类型的表&#xff0c;要插入一条数据量很大的行&#xff0c;一次插入的缓冲区会不够大&#xff0c;这时需要一部分一部分的插入LONG数据&#xff0c;这就用到了在执行语句时动态提供数据的机制。在ODBC中要动态提供数据需要几个步骤。 1. 在绑定输入参数时&…...

【Java】—— 集合框架:Collection子接口:Set不同实现类的对比及使用(HashSet、LinkedHashSet、TreeSet)

目录 5. Collection子接口2&#xff1a;Set 5.1 Set接口概述 5.2 Set主要实现类&#xff1a;HashSet 5.2.1 HashSet概述 5.2.2 HashSet中添加元素的过程&#xff1a; 5.2.3 重写 hashCode() 方法的基本原则 5.2.4 重写equals()方法的基本原则 5.2.5 练习 5.3 Set实现类…...

android Activity生命周期

android 中一个 activity 在其生命周期中会经历多种状态。 您可以使用一系列回调来处理状态之间的转换。下面我们来介绍这些回调。 onCreate&#xff08;创建阶段&#xff09; 初始化组件&#xff1a;在这个阶段&#xff0c;Activity的主要工作是进行初始化操作。这包括为Ac…...

C#的面向对象

1&#xff09;对象 算法数据结构 2&#xff09;对象的行为已方法的形式定义的&#xff0c;属性以成员变量的形式定义的 面向对象程序设计的特点 1&#xff09;封装性 2&#xff09;继承性 3&#xff09;多态性 知识点&#xff1a; 封装性面向对象的核心思想&#xff0c;将…...

【区别】三种命令取消已暂存的文件,处理暂存区和文件的跟踪状态

取消已暂存的文件 git restore --staged <文件>、git reset HEAD <文件> 和 git rm --cached <文件> 都可以用于取消已暂存的文件&#xff0c;但它们的作用和使用场景略有不同。下面是它们的区别&#xff1a; 1. git restore --staged <文件> 该命令…...

如何在Spring Boot中有条件地运行CommandLineRunner Bean

PS 使用 Spring Boot 3.1.2 进行测试 1.使用ConditionalOnProperty ConditionalOnProperty仅当特定属性存在或具有特定值时&#xff0c;注释才会创建 Bean 。 在此示例中&#xff0c;仅当或文件中的CommandLineRunner属性db.init.enabled设置为 true时&#xff0c;才会执行。…...

边缘自适应粒子滤波(Edge-Adaptive Particle Filter)的MATLAB函数示例,以及相应的讲解

目录 讲解 初始化 预测步骤 观测模拟 权重更新 重采样 状态估计 总结 下面是一个简单的边缘自适应粒子滤波&#xff08;&#xff09;的函数示例&#xff0c;以及相应的讲解。 程序源代码&#xff1a; function X_est edgeAdaptiveParticleFilter(numParticles, numS…...

一块1T硬盘怎么有sdb1和sdb2

在一块 1TB 硬盘上看到两个分区 sdb1 和 sdb2 是非常常见的现象。硬盘可以被划分为多个分区&#xff0c;每个分区都可以用作不同的目的&#xff0c;如存储不同类型的数据、安装不同的操作系统或为系统不同的功能提供支持。 1. 分区的概念 硬盘可以被划分为多个分区&#xff0…...

Python知识点:如何使用Flink与Python进行实时数据处理

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 如何使用Flink与Python进行实时数据处理 Apache Flink是一个流处理框架&#xf…...

Swagger配置且添加小锁(asp.net)(笔记)

此博客是基于 asp.net core web api(.net core3.1)框架进行操作的。 一、安装Swagger包 在 NuGet程序包管理中安装下面的两个包&#xff1a; swagger包&#xff1a;Swashbuckle.AspNetCore swagger包过滤器&#xff1a;Swashbuckle.AspNetCore.Filters 二、swagger注册 在…...

lambda表达式底层实现:反编译LambdaMetafactory + 转储dump + 运行过程 + 反汇编 + 动态指令invokedynamic

一、结论先行 lambda 底层实现机制 1.lambda 表达式的本质&#xff1a;函数式接口的匿名子类的匿名对象 2.lambda表达式是语法糖 语法糖&#xff1a;编码时是lambda简洁的表达式&#xff0c;在字节码期&#xff0c;语法糖会被转换为实际复杂的实现方式&#xff0c;含义不变&am…...

Unity初识+面板介绍

Unity版本使用 小版本号高&#xff0c;出现bug可能性更小&#xff1b;一台电脑可以安装多个版本的Unity&#xff0c;但是需要安装在不同路径&#xff1b;安装Unity时不能有中文路径&#xff1b;Unity项目路径也不要有中文。 Scene面板 相当于拍电影的片场&#xff0c;Unity程…...

【CSS in Depth 2 精译_041】6.4 CSS 中的堆叠上下文与 z-index(上)

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09;第二章 相对单位&#xff08;已完结&#xff09;第三章 文档流与盒模型&#xff08;已完结&#xff09;第四章 Flexbox 布局&#xff08;已…...