在vscode中运行c++代码,windows 11系统

news2024/11/26 18:51:21

缘起

工作中用mac电脑,装了vscode和c++,在家里的windows电脑上,也想运行vscode,这时候就遇到问题了。现在将问题解决方案记录下来,以供参考。

解决方案

开始比较懒,直接百度一下,找了几篇文章,都不大行。后来还是去官网了。因为之前记得官网的教程是最直观的。如果懒得听我啰嗦,直接去官网上看即可。
官网地址
https://code.visualstudio.com/docs/languages/cpp

先决条件
若要成功完成本教程,必须执行以下步骤:

安装 Visual Studio Code。

安装适用于 VS Code 的 C/C++ 扩展。您可以通过在“扩展”视图(Ctrl+Shift+X)中搜索“C++”来安装 C/C++ 扩展。
在这里插入图片描述

安装 MinGW-w64 工具链

通过 MSYS64 获取最新版本的 MinGW-w2,它提供了 GCC、MinGW-w64 和其他有用的 C++ 工具和库的最新本机版本。这将为你提供必要的工具来编译代码、调试代码并将其配置为使用 IntelliSense。

  1. 您可以从 MSYS2 页面下载最新的安装程序,也可以使用此直接链接到安装程序。

  2. 运行安装程序并按照安装向导的步骤操作。请注意,MSYS2 需要 64 bit Windows 8.1 或更高版本。

  3. 在向导中,选择所需的安装文件夹。记录此目录以备后用。在大多数情况下,建议的目录是可以接受的。当您设置开始菜单快捷方式步骤时,这同样适用。完成后,确保选中“立即运行 MSYS2”框,然后选择“完成”。这将为您打开一个 MSYS2 终端窗口。

  4. 在此终端中,通过运行以下命令安装 MinGW-w64 工具链:

pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
  1. 按 Enter 键接受组中默认的包数。toolchain
    在这里插入图片描述

  2. 当系统提示是否继续安装时,请输入。Y

  3. 使用以下步骤将 MinGW-w64 文件夹的路径添加到 Windows 环境变量中:binPATH

    1. 在 Windows 搜索栏中,键入“设置”以打开 Windows 设置。
    2. 搜索 Edit environment variables for your account(编辑帐户的环境变量)。
    3. 在“用户变量”中,选择变量,然后选择“编辑”。Path
    4. 选择“新建”,将您在安装过程中记录的 MinGW-w64 目标文件夹添加到列表中。如果您使用了上面的默认设置,则这将是路径:C:\msys64\ucrt64\bin
    5. 选择“确定”以保存更新的 PATH。您需要重新打开任何控制台窗口,才能使新的 PATH 位置可用。
检查 MinGW 安装

要检查您的 MinGW-w64 工具是否正确安装并可用,请打开新的命令提示符并键入:

gcc --version
g++ --version
gdb --version

您应该会看到输出,其中指出您安装了哪些版本的 GCC、g++ 和 GDB。如果不是这种情况:

确保您的 PATH 变量条目与安装 toochain 的 MinGW-w64 二进制位置匹配。如果该 PATH 条目中不存在编译器,请确保按照前面的说明进行操作。
如果具有正确的输出但没有 ,则需要安装 MinGW-w64 工具集中缺少的软件包。gccgdb
如果在编译时收到“miDebuggerPath 的值无效”消息,则原因之一可能是您缺少包。mingw-w64-gdb

创建 Hello World 应用

首先,让我们设置一个项目。

启动 Windows 命令提示符(在 Windows 搜索栏中输入 Windows 命令提示符),然后
运行以下命令。这些将创建一个名为“空文件夹”的空文件夹,您可以在其中放置所有 VS Code 项目。在那里,下一个命令将创建并导航到名为 的子文件夹。从那里,您将直接在 VS Code 中打开。projectshelloworldhelloworld

mkdir projects
cd projects
mkdir helloworld
cd helloworld
code .

“code .”命令在当前工作文件夹中打开 VS Code,该文件夹将成为“工作区”。通过选择“是,我信任作者,因为这是你创建的文件夹”来接受“工作区信任”对话框。

在完成本教程时,你将看到在工作区的文件夹中创建了三个文件:.vscode

tasks.json(构建说明)
launch.json(调试器设置)
c_cpp_properties.json(编译器路径和 IntelliSense 设置)
添加源代码文件
在文件资源管理器标题栏中,选择“新建文件”按钮,并将文件命名为 。helloworld.cpp

“新建文件标题栏”按钮

添加 hello world 源代码
现在粘贴以下源代码:

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};

    for (const string& word : msg)
    {
        cout << word << " ";
    }
    cout << endl;
}

现在按 Ctrl+S 保存文件。请注意,刚刚添加的文件在 VS Code 侧栏的“文件资源管理器”视图 (Ctrl+Shift+E) 中显示:

文件资源管理器

您还可以启用“自动保存”以自动保存文件更改,方法是选择“文件”>“自动保存”。可以在 VS Code 用户界面文档中找到有关其他视图的详细信息。

运行 helloworld.cpp

请记住,C++ 扩展使用计算机上安装的 C++ 编译器来构建程序。在尝试在 VS Code 中运行和调试之前,请确保已完成“安装 MinGW-w64 工具链”步骤。helloworld.cpp

打开,使其成为活动文件。helloworld.cpp

按编辑器右上角的播放按钮。

从系统上检测到的编译器列表中选择 C/C++:g++.exe 生成和调试活动文件。

C++ 调试配置下拉列表

只有在第一次运行时,系统才会要求您选择编译器。此编译器将在文件中设置为“默认”编译器。helloworld.cpptasks.json

构建成功后,程序的输出将显示在集成终端中。

祝贺!你刚刚在 VS Code 中运行了你的第一个 C++ 程序!

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

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

相关文章

高阶数据结构学习 —— 图(1)

文章目录 1、并查集2、了解图3、邻接矩阵4、压缩路径5、基本概念6、邻接表 1、并查集 并查集是一个森林&#xff0c;是由多棵树组成的。这相当于整套数据&#xff0c;分成多个集合。查找有交集的集合们&#xff0c;会把它们合并起来&#xff0c;所以叫并查集。 一开始拿到的是…

idea上怎么将新创建项目转为maven项目

场景 在刚创建的一个项目中&#xff0c;往往没有被识别为maven项目&#xff0c;怎么做呢&#xff1f; 方法 然后选maven&#xff0c;这样这个项目就变成了maven项目

计数排序——不用比较的排序

原理&#xff1a; 代码&#xff1a; void CountSort(int* a, int n) {int max a[0];int min a[0];for (int i 0; i < n; i){if (a[i] > max){max a[i];}if (a[i] < min){min a[i];}}int grang max - min 1;int* count (int*)malloc(sizeof(int) * grang);me…

【SpringBoot】Docker部署

docker部署是主流的部署方式&#xff0c;极大的方便了开发部署环境&#xff0c;保持了环境的统一&#xff0c;也是实现自动化部署的前提。 1 项目的目录结构 package: 点击打包&#xff0c;生成 xxx-SNAPSHOT.jar target目录: 打包生成目录&#xff0c;生成的jar存放位置Docke…

Leetcode—2558.从数量最多的堆取走礼物【简单】

2023每日刷题&#xff08;十二&#xff09; Leetcode—2558.从数量最多的堆取走礼物 大顶堆实现代码 void swap(int *a, int *b) {int tmp *a;*a *b;*b tmp; }void downAdjustHeap(int *heap, int low, int high) {int i low;int j 2 * i 1;while(j < high) {if(j …

项目部署之OpenResty

项目部署之OpenResty 1. OpenResty介绍 OpenResty 是一个基于Nginx的高性能Web平台&#xff0c;用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。具备下列特点&#xff1a; 具备Nginx的完整功能基于Lua语言进行扩展&#xff0c;集成了大量精良…

单调队列和单调栈

单调队列 这种涉及到维护子数组的最大/小值的操作&#xff0c;一般都会是 1 剑指 Offer 59 - II. 队列的最大值 2 239. 滑动窗口最大值 3 1438. 绝对差不超过限制的最长连续子数组 单调栈

【算法】Floyd算法多源汇最短路

最短路问题基础问题到这里就结束了&#xff0c;附上最短路问题知识结构图。 题目 给定一个 n 个点 m 条边的有向图&#xff0c;图中可能存在重边和自环&#xff0c;边权可能为负数。 再给定 k 个询问&#xff0c;每个询问包含两个整数 x 和 y&#xff0c;表示查询从点 x 到点…

Python 模块:创建、导入和使用

什么是模块&#xff1f; 将模块视为代码库。模块是一个包含一组函数的文件&#xff0c;您想要在应用程序中包含这些函数。 创建一个模块 要创建一个模块&#xff0c;只需将要包含在其中的代码保存在扩展名为 .py 的文件中&#xff1a; 示例&#xff1a;将以下代码保存在名为…

YOLOv5算法 | 万字长文带你深度解析yolov5s.yaml配置文件

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。配置文件yolov5s.yaml在YOLOv5模型训练过程中发挥着至关重要的作用&#xff0c;属于初学者必知必会的文件&#xff01;在YOLOv5-6.0版本源码中&#xff0c;配置了5种不同大小的网络模型&#xff0c;分别是YOLOv5n、YOLOv5s…

D-Nerf:用于动态场景表示的神经辐射场

Pumarola A, Corona E, Pons-Moll G, et al. D-nerf: Neural radiance fields for dynamic scenes[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 10318-10327. D-Nerf 较 NeRF 的改进 1 就是能够建模移动或变形的物体&#…

2021年上半年上午易错题(软件设计师考试)

1.在CPU中&#xff0c;用&#xff08;A&#xff09;给出将要执行的下一条指令在内存中的地址。 A.程序计数器 B.指令寄存器 C.主存地址寄存器 D.状态条件寄存器 3.采用DMA方式传送数据时&#xff0c;每传送一个数据都需要占用一个&#xff08;C&#xff09;。 A.指令周期…

最新Microsoft Edge浏览器如何使用圆角

引入 最近我看了edge官方的文档&#xff0c;里面宣传了edge的最新UI设计&#xff0c;也就是圆角&#xff0c;但是我发现我的浏览器在升级至最新版本之后&#xff0c;却没有圆角 网上有很多人说靠实验性功能即可解锁&#xff0c;但是指令我都试过了&#xff0c;每次都是搜索无结…

生鲜冻货经营小程序商城的效果如何

海鲜肉类也是人们的主要餐食之一&#xff0c;现产和冻货都有很高的市场需求度&#xff0c;由于受众广&#xff0c;因此对商家来说&#xff0c;除了本地生意外&#xff0c;外地生意才有更大的拓展空间。 但信息发展下&#xff0c;仅依靠电话、微信私信显然难以完善&#xff0c;…

SpringBoot集成与应用Neo4j

文章目录 前言集成使用定义实体配置定义Repository查询方法方式一&#xff1a;Query方式二&#xff1a;Cypher语法构建器方式三&#xff1a;Example条件构建器方式四&#xff1a;DSL语法 自定义方法自定义接口继承自定义接口实现自定义接口neo4jTemplateNeo4jClient 自定义抽象…

服务器资源检查

1.检查CPU情况 # 型号及核数 cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c # 查看物理cpu个数 cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l # 查看逻辑cpu个数 cat /proc/cpuinfo | grep "processor" | wc -l cat /proc/…

python随手小练9(南农作业题)

题目1&#xff1a; 用python提供的相关函数计算数学表达式的值 具体操作&#xff1a; a float(input("x:")) #input()输入&#xff08;默认为字符串str形式&#xff09; #float()将()内类型转换为浮点型&#xff08;即有小数点&#xff09; b a (3*a)/4 #…

《你不知道的Javascript系列》——不可变性immutable

基础 JavaScript中存在以下数据类型&#xff1a; 原生&#xff08;基本&#xff09;类型 —— Boolean, Number, String非原始&#xff08;引用&#xff09;类型或对象 —— Object, Array, Function特殊 —— Null, Undefined 原生数据类型默认是不可变的&#xff0c;对于常…

好消息FL Studio21.2中文版本发布了!新功能详细介绍

为庆祝 FL Studio 21.2 的发布&#xff0c;所有 FL Studio 用户都可免费使用一个月的 FL Cloud。只需打开 FL Studio 21.2&#xff0c;点击浏览器中的 "声音 "标签即可开始使用。FL Cloud 提供完全集成的采样库、人工智能母带处理和由 DistroKid 支持的数字发行&…

bbr 流相互作用图示

类似 AIMD 收敛图&#xff0c;给出 bbr 的对应图示&#xff1a; bbr 多流相互作用非常复杂&#xff0c;和右下角的 AIMD 相比&#xff0c;毫无美感&#xff0c;但是看一眼左下角的 bbr 单流情况&#xff0c;又过于简陋&#xff0c;而 bbr 的核心就基于这简陋的假设。 浙江温…