在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&…

论文笔记(五十四)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]。为了满足大量新能源车辆的充电需求,各地纷纷建设新能源充电桩站点。然而,随着充电桩数量的增加,管理和运营充电桩也面临…

克服奖励欺骗: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>{{.…

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

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

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

这一节主要了解一下鸿蒙中自定义点击事件&#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;…

SqlSugar查询达梦数据库遇到的异常情况

使用SqlSugar连接达梦数据库&#xff0c;联查两张表的数据遇到的奇怪问题&#xff1a;同一套代码&#xff0c;在一个环境中可以正常查询并返回数据&#xff0c;但在另一环境中运行则查不到数据。在个人电脑上测试时也能正确运行&#xff0c;搞不清楚是怎么回事&#xff0c;特此…

ip地址分为几大类-IP和子网掩码对照表

一、IP地址的基本概念与分类 IP地址是用于在网络中标识每个设备的逻辑地址。互联网协议将IP地址分为A、B、C、D和E五类&#xff0c;其中A、B、C三类最常用&#xff0c;它们主要根据地址的首位位数以及用途进行划分。 A类地址&#xff1a; 范围&#xff1a;0.0.0.0 - 127.255.2…

【AI开源项目】Botpress - 开源智能聊天机器人平台及其部署方案

文章目录 Botpress 概述Botpress 的定位 Botpress 的主要特点1. OpenAI 集成2. 易于使用3. 定制和扩展性4. 多平台支持5. 集成和扩展 API6. 活跃的社区和详尽的文档 部署方案集成集成开发集成部署机器人示例开发工具代理本地开发先决条件从源代码构建 Botpress 如何解决常见问题…

JetPack Compose安卓开发之底部导航Tabbar

效果&#xff0c;页面切换 项目结构 TabBar.kt package com.weimin.strollerapp.components.tabbarimport androidx.compose.foundation.Image import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.f…

SpringBoot应用:精品在线试题库的设计与实现

2 相关技术 2.1 Spring Boot框架简介 Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff0c;Sprin…

乐鑫esp32和esp32s3使用flash download tool V3.9.7工具下载固件的使用说明

使用esp32IDF工具编程后使用vscode内置的烧录工具&#xff08;火的图标按钮&#xff09;烧录是正常的&#xff0c;说明程序没有问题。 如果要使用flash download tool V3.9.7工具下载固件还是有些要注意的事项&#xff1a; 1.三个bin文件分别在&#xff1a; 第一个&#xff1a;…