在VScode中配置C_C++环境

众所周知,VScode是一个轻量,简便,功能强大的编辑器,我们可以在里面编写各种各样的代码,但是在C/C++代码编译运行的时候,我们需要对环境进行一些适配,废话不多说,请看下面的详细步骤。

一.下载VScode编辑器

我们找到VScode的官网,找到适合自己电脑的版本(Windows、Mac、Linux)等,下面以Windows来进行示例:

下载地址:Download Visual Studio Code - Mac, Linux, Windows

二.下载MinGW-w64 - for 32 and 64 bit Windows

MinGW-w64 是一个用于在 Windows 操作系统上开发和构建原本为类 Unix 系统设计的软件的工具集。它提供了一个 POSIX(Portable Operating System Interface,可移植操作系统接口)环境,使得 Windows 用户可以使用许多在 Unix 系统上流行的工具和命令,从而增强了 Windows 系统的开发能力。

MinGW-w64 的主要目标是提供一个最小化的、能够运行 GNU 工具链的 Windows 环境。它包括了许多常见的 GNU 工具和库,例如 GCC(GNU Compiler Collection,GNU 编译器集合)、GDB(GNU Debugger,GNU 调试器)等,以及一个 Windows 兼容的 POSIX API 实现。这些工具允许开发者在 Windows 上编写、编译和调试 C/C++ 等编程语言的代码,同时也能运行许多在 Unix 系统上编写的脚本和工具。

下载地址:MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net

我们下载完成后得到一个.7z的压缩包,我们拷贝一下放在一个全英文的路径下解压(重点),否则后续配置无法成功。

三.配置环境变量

我们先点开mingw64这个文件的bin目录,复制一下,拷贝在用户变量的Path路径中。

此时,我们在桌面打开一个终端,输入g++ --version命令观察环境变量是否配置成功。

如果提示与上图一致,代表环境变量配置成功,若报错,请重新配置。

四.配置VScode基础项

1.汉化插件
第一次进入VScode,我们会发现怎么是全英文编辑器(救命,孩子英语不好),那么这个时候,我们就需要一个汉化插件来帮助我们提高开发效率了,我们先单击左侧的四个矩形标识的图标,这便是管理拓展项的开关,我们搜索Chinese,第一个便就是我们的汉化插件,把它install下来重启VScode即可。

2.C/C++插件
我们要编译运行C/C++文件的话还需要一个C/C++插件,我们在扩展里面直接搜索C/C++即可,同理install下来重启VScode就能使用了。

五.配置.vscode文件环境基础配置项

我们在全英文目录下新建一个文件夹Code,我们使用VScode打开,并在里面配置.vscode文件,若初始化没有生成,则需自己创建。
1.c_cpp_properties.json
**用途**: 配置 C/C++ 语言相关的属性和环境设置
{"configurations": [{"name": "Win64","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG", "UNICODE", "_UNICODE"],"windowsSdkVersion": "10.0.18362.0","compilerPath": "D:/C++Surroundings/mingw64/bin/g++.exe","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "gcc-x64"}],"version": 4
}

其中:compilerPath路径需找到自己本地的相应路径进行配置

2.launch.json
**用途**:用于配置调试相关的设置。如前面介绍的用于 C/C++ 调试时,指定调试器类型、可执行文件路径、调试模式等。
{"version": "0.2.0","configurations": [{"name": "(gdb) Launch","type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceRoot}","environment": [],"externalConsole": true,"MIMode": "gdb","miDebuggerPath": "D:\\C++Surroundings\\mingw64\\bin\\gdb.exe","preLaunchTask": "g++","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}]}]
}

其中:miDebuggerPath路径需找到自己本地的相应路径进行配置

3.settings.json
**用途** :用于配置编辑器本身的各种通用设置
{"files.associations": {"*.py": "python","iostream": "cpp","*.tcc": "cpp","string": "cpp","unordered_map": "cpp","vector": "cpp","ostream": "cpp","new": "cpp","typeinfo": "cpp","deque": "cpp","initializer_list": "cpp","iosfwd": "cpp","fstream": "cpp","sstream": "cpp","map": "c","stdio.h": "c","algorithm": "cpp","atomic": "cpp","bit": "cpp","cctype": "cpp","clocale": "cpp","cmath": "cpp","compare": "cpp","concepts": "cpp","cstddef": "cpp","cstdint": "cpp","cstdio": "cpp","cstdlib": "cpp","cstring": "cpp","ctime": "cpp","cwchar": "cpp","exception": "cpp","ios": "cpp","istream": "cpp","iterator": "cpp","limits": "cpp","memory": "cpp","random": "cpp","set": "cpp","stack": "cpp","stdexcept": "cpp","streambuf": "cpp","system_error": "cpp","tuple": "cpp","type_traits": "cpp","utility": "cpp","xfacet": "cpp","xiosbase": "cpp","xlocale": "cpp","xlocinfo": "cpp","xlocnum": "cpp","xmemory": "cpp","xstddef": "cpp","xstring": "cpp","xtr1common": "cpp","xtree": "cpp","xutility": "cpp","stdlib.h": "c","string.h": "c"},"editor.suggest.snippetsPreventQuickSuggestions": false,"aiXcoder.showTrayIcon": true
}
4.tasks.json
**用途**:用于定义各种任务,比如编译任务等。对于 C/C++ 开发,通常用于配置如何使用编译器(如 MinGW-w64 中的 GCC)编译代码。
{"version": "2.0.0","tasks": [{"label": "g++","command": "g++","args": ["-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"problemMatcher": {"owner": "cpp","fileLocation": ["relative", "${workspaceRoot}"],"pattern": {"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$","file": 1,"line": 2,"column": 3,"severity": 4,"message": 5}},"group": "build"},{"type": "cppbuild","label": "C/C++: g++.exe 生成活动文件","command": "D:/C++Surroundings/mingw64/bin/g++.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "D:/C++Surroundings/mingw64/bin"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"}]
}

其中:command,cwd路径需找到自己本地的相应路径进行配置

六.创建.c和.cpp文件调试运行

我们在与.vscode同级的目录下创建一个全英文的新文件,放置我们的.cpp和.c文件,我们试着来编写一段程序,如下图所示:

如果你发现自动生成了一个.exe文件代表着编译成功,当我们看到终端正确打印出来相应的内容就证明我们完成了本次的配置,以后就可以愉快地在VScode中编写C/C++代码了,到这里,恭喜你学会了配置环境,快去帮你的同学或室友配置一下吧!

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

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

相关文章

医疗器械设备语音ic芯片方案-选型大全

在医疗设备领域,深圳唯创知音提供了多款适用的语音IC产品,以下是其中几款较为常见的推荐: 一、WT588F02X-8S 特点: 1:低成本人机交互语音方案,仅需嵌入在产品中,提升医疗设备智能化水平。 2&…

认识 WordPress:全球最受欢迎的建站平台

WordPress 是一个功能强大且灵活的开源建站平台。它不仅是全球最受欢迎的内容管理系统(CMS),而且凭借其用户友好的界面、强大的扩展性和庞大的社区支持,成为了各类网站的首选工具。本文将带你了解 WordPress 的起源、优势及适用场…

论文笔记(五十四)pi0: A Vision-Language-Action Flow Model for General Robot Control

π0: A Vision-Language-Action Flow Model for General Robot Control 文章概括摘要I. INTRODUCTIONII. RELATED WORKIII. OVERVIEWIV. π 0 \pi_0 π0​模型V. 数据收集和培训配方A. 预训练和后训练B. 语言和高级策略C. 机器人系统细节 VI. 实验评估A. 基础模型评估B. 遵循语…

【含开通报告+文档+源码】基于SpringBoot的新能源充电桩管理系统的设计与实现

开题报告 近年来,随着全球对环境问题的关注和新能源汽车的普及,新能源充电桩的需求显著增加[1]。为了满足大量新能源车辆的充电需求,各地纷纷建设新能源充电桩站点。然而,随着充电桩数量的增加,管理和运营充电桩也面临…

Android 复习Path.Op.DIFFERENCE

mLinePaint.setAntiAlias(true); mLinePaint.setStrokeWidth(4f); mLinePaint.setColor(Color.parseColor("#FFFFFFFF")); mLinePaint.setStyle(Paint.Style.STROKE); // 定义圆角矩形的边界RectF rectF new RectF(lThumbWidth lThumbOffset, 0f, rThumbOffs…

TDengine 数据订阅 vs. InfluxDB 数据订阅:谁更胜一筹?

在时序数据的应用场景中,数据的实时消费和处理能力成为衡量数据库性能和可用性的重要指标。TDengine 和 InfluxDB 作为时序数据库(Time Series Database)中的佼佼者,在数据订阅方面各有特点。但从架构设计、灵活性和系统负载上看&…

克服奖励欺骗:Meta发布全新后训练方式CGPO,编程水平直升5%,打破RLHF瓶颈

克服奖励欺骗:Meta发布全新后训练方式CGPO,编程水平直升5%,打破RLHF瓶颈 在人工智能领域,奖励欺骗成为了多任务学习中的一大难题,严重影响了大型语言模型(LLMs)的表现。为了有效应对这一挑战&a…

Python小游戏19——滑雪小游戏

运行效果 python代码 import pygame import random # 初始化Pygame pygame.init() # 设置屏幕尺寸 screen_width 800 screen_height 600 screen pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption("滑雪小游戏") # 定义颜色 WH…

goframe开发一个企业网站 前端界面 拆分界面7

将页面拆出几个公用部分 在resource/template/front创建meta.html header.html footer.html meta.html <head><meta charset"utf-8"><meta content"widthdevice-width, initial-scale1.0" name"viewport"><title>{{.…

Android 大疆面经

Android 大疆面经 文章目录 Android 大疆面经一面 一面 自我介绍问项目聊了10分钟View的绘制流程MVC&#xff0c;MVP&#xff0c;MVVM的区别view和viewmodel的通信&#xff0c;除了databing还有其他的方式面向对象和面向过程的区别工厂模式和策略模式&#xff0c;哪些框架使用…

读书笔记#深入理解Java虚拟机(第三版)# Java内存模型与线程

深入理解Java虚拟机&#xff08;第三版&#xff09;# 高效并发 chap12 Java内存模型与线程 概述 在许多场景下&#xff0c;让计算机同时去做几件事情&#xff0c;不仅是因为计算机的运算能力强大了&#xff0c;还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统的…

简单理解什么是js原型链(注意“提问”的问题)

原型链是 JavaScript 中实现对象属性继承的一种机制。它允许对象通过其原型&#xff08;prototype&#xff09;从其他对象继承属性和方法。 1. 原型&#xff08;Prototype&#xff09; 每个 JavaScript 对象都有一个内部链接&#xff0c;指向另一个对象&#xff0c;这个对象称…

Ubuntu操作系统安装过程简介

以下是Ubuntu使用Ubiquity安装器的详细安装过程&#xff1a; 1. 准备工作 - 首先&#xff0c;获取Ubuntu的安装介质。可以是官方网站下载的ISO镜像文件&#xff0c;并将其制作成可引导的USB启动盘&#xff08;可使用Rufus等工具&#xff09;&#xff0c;或者是Ubuntu安装光…

鸿蒙笔记--自定义点击事件

这一节主要了解一下鸿蒙中自定义点击事件&#xff0c;主要是实现在父组件点击子组件后获取子组件的返回参数。 栗子&#xff1a; import { MyCustomButton } from ./MyCustomButton;Entry Component struct Index {State message: string Hello World;build() {Column(){MyC…

第三十一章 Vue之路由(VueRouter)

目录 一、引言 1.1. 路由介绍 二、VueRouter 三、VueRouter的使用 3.1. 使用步骤&#xff08;52&#xff09; 3.2. 完整代码 3.2.1. main.js 3.2.2. App.vue 3.2.3. Friend.vue 3.2.4. My.vue 3.2.5. Find.vue 一、引言 1.1. 路由介绍 Vue中路由就是路径和组件的映…

软件测试学习笔记丨SeleniumPO模式

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/22525 本文为霍格沃兹测试开发学社的学习经历分享&#xff0c;写出来分享给大家&#xff0c;希望有志同道合的小伙伴可以一起交流技术&#xff0c;一起进步~ 说明&#xff1a;本篇博客基于sel…

【学习enable_if模板, 学习unqiue_str 删除操作】

enable_if 是 C 标准库中的一个模板结构体&#xff0c;它用于条件编译和 SFINAE&#xff08;Substitution Failure Is Not An Error&#xff09;。enable_if 的主要作用是通过条件编译来控制模板的实例化&#xff0c;从而实现条件编译和 SFINAE。 1. enable_if 的基本用法如下…

【自然资源】关于多测合一,你了解吗?

关于多测合一&#xff0c;你了解吗&#xff1f; “多测合一” 是指&#xff1a;按照“统一标准、多测合并、成果共享”要求和“应合尽合、能合则合”原则&#xff0c;对同一工程建设项目各个阶段的多项测绘服务事项进行整合优化的测绘服务和管理模式。 是将工程建设项目竣工验…

江协科技STM32学习- P28 USART串口数据包

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

HarmonyOS鸿蒙开发入门,常用ArkUI组件学习(二)

书接上回&#xff0c;让我们继续来学习ArkUI的其他组件 目录&#xff0c;可以点击跳转到想要了解的组件详细内容 组件四&#xff1a;Button组件五&#xff1a;Slider组件六&#xff1a; Column & Row组件七&#xff1a;循环控制组件八&#xff1a; List 组件四&#xff1a;…