保姆级VsCode配置C++编译环境

文章目录

    • 一、下载安装VSCODE
    • 二、 安装C++拓展
    • 三、下载配置MinGW-w64
    • 四、下载配置CMake
    • 五、 配置vscode中的 json文件
    • 六、 谨记

在现代开发中,VSCode以其轻量、强大的扩展生态圈,逐渐成为了众多开发者的首选编辑器,尤其是在C++开发环境中,其便捷性和可定制性更是大放异彩。对于刚接触VSCode的小白,如何一步步配置出一个高效的C++编译环境,或许看起来如登高望远般复杂。但别担心!这篇保姆级教程将带你逐步攻克配置难关,让你从零到拥有一个完美的C++开发环境,毫不费力。让我们一同踏上这趟配置之旅,让VSCode成为你的C++开发利器!

一、下载安装VSCODE

进入VSCODE官网 vscode,点击Download,下载完成后点击exe进行安装。
在这里插入图片描述
请添加图片描述
请添加图片描述请添加图片描述
点击下一步,点击安装即可。

二、 安装C++拓展

由于vscode默认是英文,因此需要下载中文插件。同时还需要下载其他插件,如下截图。

搜索对应名称,点击install安装插件。

在这里插入图片描述

三、下载配置MinGW-w64

点击这里下载MinGW

在这里插入图片描述
下载之后,解压进去,可以看到里面有个mingw64文件夹,把这个文件夹复制到自己的C盘或者D盘下,我这里放在了C:\MinGW这个路径下

在这里插入图片描述
完成之后,我们需要配置环境变量。
右击我的电脑,点击属性,然后按照如下箭头方向配置,不要忘记依次点击确定

在这里插入图片描述
为了验证是否配置成功,我们可以使用win+R快捷键,输入cmd

在这里插入图片描述
按照如下依次输入,结果如图所示即为配置成功。

gcc -v
g++ -v

在这里插入图片描述

四、下载配置CMake

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程),并且输出对应的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再以一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

示例安装环境:Windows 64位。
首先在CMake官网下载安装包,官网点击Download。
在这里插入图片描述
在这里插入图片描述
1、下载后双击安装

在这里插入图片描述
2、进入安装界面,点击【Next】

请添加图片描述
3、同意协议,点击【Next】

请添加图片描述
4、将Cmake添加进用户变量,黄色框是创建桌面图标,可根据自己需要选择,点击【Next】。

请添加图片描述
5、选择路径,点击【Next】。

请添加图片描述
6、开始安装,点击【Install】

请添加图片描述
7、安装完毕,点击【Finish】

请添加图片描述
8、安装完毕,进行测试。

//打开cmd黑窗,输入命令查看版本
cmake /V

在这里插入图片描述

五、 配置vscode中的 json文件

在自己的工作盘下面新建一个存放代码的文件夹,我这里是H:\vscode,然后使用vscode打开此文件夹
在这里插入图片描述
点击新建文件,创建一个名为test.cpp的文件,并写一段输出hello world的代码

在这里插入图片描述
使用快捷键ctrl+F5运行,选择C++(GDB/LLDB)

这时候会自动生成一个.vscode文件夹,里面一般需要三个文件:tasks.json,launch.json,c_cpp_properties.json三个文件,没有的话自己新建对应名字的json文件,然后复制下面我的代码到对应文件中,并将下面三个文件的注释部分替换成自己的对应路径即可然后保存。
在这里插入图片描述

launch.json

{"version": "0.2.0","configurations": [{"name": "g++.exe - 生成和调试活动文件","type": "cppdbg","request": "launch","program": "H:\\vscode\\${fileBasenameNoExtension}.exe",//只需要把H:\\vscode改成自己代码的工作路径即可"args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole":  false,"MIMode": "gdb","miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",//把C:\\MinGW换成自己的mingw64存放的路径"setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "C/C++: g++.exe 生成活动文件",}]}

tasks.json

{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: g++.exe 生成活动文件","command": "C:\\MinGW\\bin\\g++.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": "build","detail": "编译器: C:\\MinGW\\bin\\g++.exe"}]
}

c_cpp_properties.json

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "C:\\MinGW\\bin\\gcc.exe",//只需要把C:\\MinGW 改成自己代码的工作路径即可"cStandard": "c17","intelliSenseMode": "windows-gcc-x64","cppStandard": "c++17"}],"version": 4
}

settings.json

{"C_Cpp_Runner.cCompilerPath": "gcc","C_Cpp_Runner.cppCompilerPath": "g++","C_Cpp_Runner.debuggerPath": "gdb","C_Cpp_Runner.cStandard": "","C_Cpp_Runner.cppStandard": "","C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/VR_NR/Community/VC/Auxiliary/Build/vcvarsall.bat","C_Cpp_Runner.useMsvc": false,"C_Cpp_Runner.warnings": ["-Wall","-Wextra","-Wpedantic","-Wshadow","-Wformat=2","-Wcast-align","-Wconversion","-Wsign-conversion","-Wnull-dereference"],"C_Cpp_Runner.msvcWarnings": ["/W4","/permissive-","/w14242","/w14287","/w14296","/w14311","/w14826","/w44062","/w44242","/w14905","/w14906","/w14263","/w44265","/w14928"],"C_Cpp_Runner.enableWarnings": true,"C_Cpp_Runner.warningsAsError": false,"C_Cpp_Runner.compilerArgs": [],"C_Cpp_Runner.linkerArgs": [],"C_Cpp_Runner.includePaths": [],"C_Cpp_Runner.includeSearch": ["*","**/*"],"C_Cpp_Runner.excludeSearch": ["**/build","**/build/**","**/.*","**/.*/**","**/.vscode","**/.vscode/**"],"C_Cpp_Runner.useAddressSanitizer": false,"C_Cpp_Runner.useUndefinedSanitizer": false,"C_Cpp_Runner.useLeakSanitizer": false,"C_Cpp_Runner.showCompilationTime": false,"C_Cpp_Runner.useLinkTimeOptimization": false,"C_Cpp_Runner.msvcSecureNoWarnings": false,"files.associations": {"iostream": "cpp"}
}

完成后,重启一下vscode,打开test.cpp,再次使用快捷键ctrl+F5,即可运行成功了

六、 谨记

一定要记得把json文件里面的带注释路径替换成自己的路径,工作路径不要用中文!!

希望能够给大家带来一些帮助,能够避免在配置环境的时候踩坑。

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

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

相关文章

全光网络架构

目前组网架构 世界上有一种最快的速度又是光,以前传统以太网络规划满足不了现在的需求。 有线网 无线网 全光网络方案 场景 全光网络分类 以太全光网络 PON(Pas-sive-Optical Network 无源光网络) 再典型的中大型高校网络中 推荐万兆入…

MySQL程序特别酷

这一篇和上一篇有重合的内容,,我决定从头开始再学一下MySQL,和上一篇的区别是写的更细了,以及写这篇的时候Linux已经学完了 下面就是关于MySQL很多程序的介绍: MySQL安装完成通常会包含如下程序: Linux系…

ArcGIS002:软件自定义设置

摘要:本文详细介绍安装arcgis10.2后软件自定义设置内容,包括工具条的启用、扩展模块的启用、如何加载项管理器、快捷键设置、样式管理器的使用以及软件常规设置。 一、工具条的启用 依次点击菜单栏【自定义】->【工具条】,根据工作需求勾…

基于neo4j的医疗图谱问答与展示

找不到好的毕业设计题材?或者对人工智能领域感兴趣却不知道如何下手?这里给大家推荐一款基于Neo4j的医疗图谱问答系统项目,绝对是毕业设计的不二选择。 这个项目依托于医疗领域的知识图谱,为用户提供交流问答系统。它不仅具有知识…

吃透高并发模型与RPC框架,拿下大厂offer!!!

在当前的互联网市场环境下,竞争愈发激烈,内卷现象严重。在这种背景下,「高并发模型和RPC框架已经成为了大型企业面试的重要环节」。你是否曾因为无法回答相关技术问题而感到尴尬?例如,Java岗位的面试中会询问NIO和Reac…

使用JUC包的AtomicXxxFieldUpdater实现更新的原子性

写在前面 本文一起来看下使用JUC包的AtomicXxxxFieldUpdater实现更新的原子性。代码位置如下: 当前有针对int,long,ref三种类型的支持。如果你需要其他类型的支持的话,也可以照葫芦画瓢。 1:例子 1.1:普…

Java项目-基于springboot框架的学习选课系统项目实战(附源码+文档)

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…

MATLAB图像重心计算

图像重心(或质心)计算是计算机视觉和图像处理领域 应用领域广泛:包括医疗,生物,动画,机器人等。 该文章通过灰度转换->二值化->质心计算 以下是代码中涉及的一些数学概念和公式: 灰度转换&#xff1a…

力扣困难题汇总(14道)

题4(困难): 思路: 找两数组中位数,这个看起来简单,顺手反应就是数第(mn)/2个,这个难在要求时间复杂度为log(mn),所以不能这样搞,我的思路是:每次切割长度为较…

Systemd:简介

1号进程 Systemd是linux系统的守护进程,它要管理正在运行的 Linux 主机的许多方面,包括挂载文件系统、管理硬件、处理定时器以及启动和管理生产性主机所需的系统服务。 $ ps -u -p 1 USER PID %CPU %MEM VSZ RSS TTY STAT START TI…

R语言机器学习算法实战系列(九)决策树分类算法 (Decision Trees Classifier)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍教程下载数据加载R包导入数据数据预处理数据描述数据切割调节参数构建模型模型的决策树预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve特征的重要性保存模…

N9042B UXA 信号分析仪

N9042BUXA 信号分析仪 - 2Hz到50GHz - 使用 N9042B UXA X 系列信号分析仪和各种测量应用软件,可以测试 5G、卫星等应用中的毫米波(mmWave)创新设计的真实性能。 N9042B 具有是德科技信号分析仪中较大的分析带宽和较深的动态范围&#xff0c…

【云原生】Kubernetes部署Jenkins静动Slave

Kubernetes部署Jenkins静动Slave 文章目录 Kubernetes部署Jenkins静动Slave文档介绍资源列表基础环境一、Jenkins Kubernetes清单文件二、使用静态Slave2.1、安装Kubernetes插件2.2、添加Agent2.3、使用Slave 三、使用动态Slave3.1、添加凭据3.2、配置动态Slave3.3、配置Jenkin…

基于SpringBoot+Vue+uniapp微信小程序的澡堂预订的微信小程序的详细设计和实现

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

【深度学习中的注意力机制6】11种主流注意力机制112个创新研究paper+代码——加性注意力(Additive Attention)

【深度学习中的注意力机制6】11种主流注意力机制112个创新研究paper代码——加性注意力(Additive Attention) 【深度学习中的注意力机制6】11种主流注意力机制112个创新研究paper代码——加性注意力(Additive Attention) 文章目录…

kubernetes(三)

k8s之持久化存储pv&pvc 存储资源管理 在基于k8s容器云平台上,对存储资源的使用需求通常包括以下几方面: 1.应用配置文件、密钥的管理; 2.应用的数据持久化存储; 3.在不同的应用间共享数据存储; k8s支持Volume类…

Spring MVC文件请求处理-MultipartResolver

Spring Boot中的MultipartResolver是一个用于解析multipart/form-data类型请求的策略接口,通常用于文件上传。 对应后端使用MultipartFile对象接收。 RequestMapping("/upload")public String uploadFile(MultipartFile file) throws IOException {Strin…

十一、数据库配置

一、Navicat配置 这个软件需要破解 密码是:123456; 新建连接》新建数据库 创建一个表 保存出现名字设置 双击打开 把id设置为自动递增 这里就相当于每一次向数据库添加一个语句,会自动增长id一次 二、数据库的增删改查 1、Vs 建一个控…

磁编码器的工作原理和特点

目录 概述 1 磁编码器的构造 1.1 霍尔元件 1.2 永磁体 1.3 永磁体和霍尔元件的配置 2 磁编码器的工作原理 2.1 原理介绍 2.2 电气信号转换成角度 2.3 旋转角度传感器IC 3 磁编码器的特点和主要应用 概述 本文主要介绍磁编码器的构造原理,工作特性和应用特…

C/C++函数调用约定:__cdecl、__stdcall、__fastcall和__thiscall

目录 1.引言 2.常见函数调用约定 2.1.__cdecl 2.2.__stdcall 2.3.__fastcall 2.4.__thiscall 3.几种调用约定比较 4.注意事项 1.引言 在C和C编程中,函数调用约定(Calling Convention)定义了函数如何接收参数、如何返回值以及由谁来清…