在Windows上配置VSCode MinGW+CMake(包括C++多线程编程的两套API:posix和win32)

创建目录

首先,需要电脑上安装VSCode, 并且创建三个文件夹:cmake、MinGW-posix、MinGW-w32
在这里插入图片描述

文件下载

下载posix-seh

posix和win32分别是c++多线程变成的两套API,可根据不同需求安装,现在先下载配置环境需要的几个文件
百度搜索MinGW-64
在这里插入图片描述
点击download ,下拉找到MinW-W64-builds并点击
在这里插入图片描述
在Source中点击SourceForge
在这里插入图片描述
在这里插入图片描述
跳转以后点击files,我们需要下载的第一部门文件也就是gcc和g++工具集就在这里
在这里插入图片描述
如果计算机时64位的就下载x86部分,如果时32位的就下载i686部分,下载的时候只需要下载seh结尾的文件压缩包,点击文件,页面会自动跳转,等待倒计时结束,就会自动下载,如果没有就刷新几次
在这里插入图片描述

下载win32-seh

因为这次我们要把两套API都配置,所以需要把posix-seh和win32-seh文件都下载

在这里插入图片描述
如果下载较慢,可以考虑爬梯子加快速度

下载mingw-get-setup下载器

返回百度搜索狂,开始下载第二部分mingw下载器文件
mingw-get-setup
在这里插入图片描述
在这里插入图片描述

下载CMake

返回搜索框,下载第三部分cmake文件

在这里插入图片描述
进入cmake官方,点击右上角download
在这里插入图片描述
platform中有对应的cmake绿色版压缩包,找到需要的压缩包下载即可,这里我下载的时windows x64版本的在这里插入图片描述

解压文件

下载完成以后就得到了三部分文件:
1.MinGW gcc g++工具集
2.MinGW下载器
3.CMake绿色软件
现在,将这些文件解压到对应的提前建好的文件夹中:
1.将下载好的posix-seh解压到MinGW-posix文件夹
2.将下载好的win32-seh解压到MinGW-w32文件夹
3.将cmake绿色版压缩包解压到cmake文件夹
解压来,使用mingw下载器安装mingw基础工具集,其中包括make和gdb这些。

安装

MinGW-posix安装工具集

我们先安装posix版本内的工具集,点击mingw-get-setup下载器,把安装路径改到MinGW-posix文件夹
在这里插入图片描述
下面的选项默认即可,点击continue,接下来只需要耐性等待下载前的准备完成

在这里插入图片描述
下载前的准备完成,点击continue,进入页面选择下载包
在这里插入图片描述
我们之前已经下载完的gcc g+=相关工具集,所以这里只需要下载mingw基础工具集,点击左侧栏Basic Setup, 点击右侧选择栏选择mingw32-base-bin并Mark for Installation以后

在这里插入图片描述
在这里插入图片描述
点击左上角Installation,再点击Apply Changes在这里插入图片描述
再点击Apply,耐心等待安装成功
在这里插入图片描述
在这里插入图片描述
如果报错,先不用管,点击确定继续安装
在这里插入图片描述
等待完成,点击close
在这里插入图片描述
再All Packages里面可看我们安装的软件包,绿色方块表示以及安装成功,带黄色箭头的代表没有安装成功
在这里插入图片描述
在这里插入图片描述
之前的报错就说明有软件包没有安装成功,此时就需要再一次Apply Changes,这个软件白的安装受网速影响,如果仍然报错,就再一次apply,直到所有软件包安装成功。

MinGW-win32安装工具集

完成以后重复之前操作,给win32版本安装MinGW基础软件包,路径改为MinGW-w32,完成以后,cmake和mingw软件包就都安装完成了。

设置环境变量

打开命令提示符(win+r,输入cmd)测试安装成果,输入命令make --version, gcc --version, g++ --version,此时我们发现系统找不到运行程序
在这里插入图片描述
原因就是还没有添加环境变量,打开系统环境变量,在系统变量中找到path
在这里插入图片描述
在这里插入图片描述
再path中添加cmake和MinGW-w32软件包路径
在这里插入图片描述
添加完成,点击确定保存,返回命令提示符

输入cmake --version,可以看到当前安装的cmake版本为3.29.2
在这里插入图片描述
输入gcc -v,可以看到当前的gcc模式为win32,版本为8.1.0
在这里插入图片描述
输入g++ -v,可以看到当前的g++模式为win32,版本为8.1.0
在这里插入图片描述
如果要使用posix版本的gcc g++,就在环境变量中MinGW-w32的路径更改对应MinGW-posix的软件包路径
在这里插入图片描述
添加完成,点击确定保存,返回命令提示符
输入gcc -v,可以看到当前的gcc模式为posix,版本为8.1.0
在这里插入图片描述
输入g++ -v,可以看到当前的g++模式为win32,版本为8.1.0
在这里插入图片描述
至此,MinGW和cmake的环境就算配置完成了,接下来看看如何在VSCode中使用MinGW和cmake

VSCode使用

打开VSCode,点击进入商店
在这里插入图片描述

输入c/c++,点击第一个,点击安装
在这里插入图片描述
输入cmake,点击第一个,点击下载安装
在这里插入图片描述
输入cmake-tool,点击第一个,点击下载安装

在这里插入图片描述
三个插件下载安装完成就可以在VSCode中使用gcc g++ cmake了,测试一下,输入cmake–version, gcc -v, g++ -v

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后,这样就实现了在windows上配置VSCode MInGW+CMake(包括c++多线程编程的两套API:posix和win32)如果计算机上有visual Studio,那么用VSCode编译新项目时,第一次cmake需要输入

cmake -G "MinGW Makefiles" ..

第一次输入完后直接

cmake ..

就可以,make时如果不成功,可以尝试将MinGW安装路径中的mingw32-make.exe复制一份并改为make.exe

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

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

相关文章

Apache--简介与基本使用

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、Apache简介 Apache HTTP Server(在Red Hat发行版中俗称Apache或httpd)是由Apache Software Foundation在Apache License…

WPF打印控件内容

当我们想打印控件内容时&#xff0c;如一个Grid中的内容&#xff0c;可以用WPF中PrintDialog类的PrintVisual()方法来实现 界面如下&#xff1a; XAML代码如下 <Grid><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition Width"300"…

pygame开发课程系列(4): 游戏元素

第四章 游戏元素 在本章中&#xff0c;我们将深入探讨如何在 Pygame 中处理游戏元素&#xff0c;包括键盘输入、鼠标输入、图像加载和声音播放。这些元素是构建互动游戏的基础&#xff0c;能够让你的游戏变得更生动、更有趣。 4.1 处理键盘输入 键盘输入是控制游戏角色或元素…

Redis相关介绍

本文介绍了Redis&#xff0c;一种开源的内存数据结构存储系统&#xff0c;强调其高性能、多种数据结构支持、内存存储、持久化策略、发布订阅功能及工作原理。 一、Redis的介绍 Redis&#xff08;Remote Dictionary Server&#xff09;&#xff0c;即远程字典服务&#xff0c…

[000-01-030].第7节:Zookeeper工作原理

1.Zookeeper工作原理&#xff1a; 1.1.Zookeeper的工作机制 1.Zookeeper从设计模式角度来理解&#xff1a;是一个基于观察者模式设计的分布式服务管理框架&#xff1b;2.Zookeeper负责存储和管理大家都关心的数据&#xff0c;然后接受观察者的注册&#xff0c;一旦这些数据的…

Unity Recttransform操作

1、拉伸铺满 RectTransform rect GetComponent<RectTransform>();rect.anchorMin Vector2.zero;rect.anchorMax Vector2.one;rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, Screen.width);rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Verti…

Ciallo~(∠・ω・ )⌒☆第二十篇 入门mysql 数据库

要入门MySQL数据库&#xff0c;首先需要了解数据库的基本概念和原理。MySQL是一种广泛使用的开源关系型数据库管理系统&#xff0c;它能够处理大量的数据&#xff0c;并提供了多种功能。 一、创建数据库 连接到MySQL后&#xff0c;你可以使用SQL语句来创建数据库。例如&#x…

【leetcode】删除链表的倒数第 N 个结点-25-5

方法&#xff1a;递归 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), ne…

css 文字图片居中及网格布局

以下内容纯自已个人理解&#xff0c;直接上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…

微信小程序实例代码解读

以微信 小程序开发工具给的示例代码为例&#xff1a; 主页代码&#xff1a; index.wxml 这个文件是一个微信小程序页面的 WXML 结构,主要功能是展示一个快速开始教程的步骤和内容。 源代码&#xff1a; <!--index.wxml--> <view class"container">&l…

GAMES104:07游戏中渲染管线、后处理和其他的一切-学习笔记

文章目录 前言一&#xff0c;Ambient Occlusion环境光遮蔽1.1 Precomputed AO1.2 Screen Space Ambient Occlusion(SSAO)1.3 Horizon-based Ambient Occlusion(HBAO)1.4 Ground Truth-based Ambient Occlusion(GTAO)1.5 Rat-Tracing Ambient Occlusion 二&#xff0c;雾效2.1 D…

Spring——AOP前言(写一个小demo为了好学习AOP)

1.AOP的概念 1.1 AOP简单样例 我们来先通过一个例子来对AOP进行理解&#xff0c;这个例子就是有关Spring的事务的一个样例&#xff0c;有关Spring是怎么实现事务的&#xff0c;这个事务其实本质上就是对于我们代码的一个增强。废话不多说&#xff0c;上程序&#xff0c;请各位…

SOAP @WebService WSDL

SOAP & WebService & WSDL SOAP&#xff08;Simple Object Access Protocol&#xff09;WebService&#xff08;Web服务&#xff09;WSDL&#xff08;Web Services Description Language&#xff09; SOAP&#xff08;Simple Object Access Protocol&#xff09; **是一…

Ciallo~(∠・ω・ )⌒☆第十七篇 Ubuntu基础使用 其一

Ubuntu是一种基于Linux的操作系统&#xff0c;它是开源的、免费的&#xff0c;并且具有广泛的用户群体。 基本文件操作&#xff1a;Ubuntu使用命令行工具来进行文件操作。以下是一些常用的命令&#xff1a; 切换到用户主目录&#xff1a; cd ~ 切换到上级目录&#xff1a; cd .…

解密键盘输入:探索设备控制器的奥秘

流程初探 键盘是我们最常用的输入硬件设备之一。作为程序员&#xff0c;你知道当我们敲击键盘上的字母"A"时&#xff0c;操作系统会发生什么吗&#xff1f;下面我将简要介绍整个过程&#xff0c;以便你更容易理解为什么需要这些组件。 首先&#xff0c;让我们来看看…

Linux下 vim的用法

目录 前言 一、初始Vim 二、使用Vim 1.1命令模式 2.1底行模式 3.1插入模式 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 本篇文章会介绍vim的基本用法和为什么我们要学习vim。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供…

PumpkinRaising靶机

端口扫描 目录扫描 访问80端口&#xff0c; 在页面上面发现提到了一个Jack&#xff0c;可能是一个用户名 f12查看源码 找到一个页面 拼接访问 查看源码 发现一个注释 解密 是一个目录 /scripts/spy.pcap 访问&#xff0c;自动下载了一个文件 wireshark打开流量包 找到第一个s…

IndexError: list index out of range | 列表索引超出范围完美解决方法

IndexError: list index out of range &#x1f4c9; | 列表索引超出范围完美解决方法 IndexError: list index out of range &#x1f4c9; | 列表索引超出范围完美解决方法摘要 &#x1f4c4;引言 &#x1f680; 什么是 IndexError: list index out of range&#xff1f;&…

vba代码插入折线图

xqwertyy52152018139hi303533312015 Sub test()Set sht1 ThisWorkbook.Worksheets("示例")x sht1.Range("I1").Lefty sht1.Range("I1").Topw sht1.Range("N15").Width * 15h sht1.Range("N15").Height * 25Set ch1 s…

路径规划 | 基于改进蝙蝠算法的多无人机路径规划(Matlab)

目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 路径规划 | 基于改进蝙蝠算法的多无人机路径规划&#xff08;Matlab&#xff09; 蝙蝠算法&#xff08;Bat Algorithm&#xff09;是一种基于自然界蝙蝠群体行为的启发式优化算法。该算法模拟了蝙蝠在寻找食物时的行为…