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

news2024/9/22 7:40:24

创建目录

首先,需要电脑上安装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.coloradmin.cn/o/2034524.html

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

相关文章

Django 链接MySQL数据库,报错Did you install mysqlclient?

据说是在python3里面,已经用pymysql替换了MySQLdb来进行数据库连接 所以,先安装pymysql pip install pymysql之后为了测试这个问题是否和mysql-connector-c有关系,我提前把这个应用给卸了。 之后在整个项目根目录的init文件内写入以下内容 im…

在docker中进行日志切割

先在Linux中安装docker,然后在docker中安装appnode面板,并进行docker网络端口映射。接着进入docker,进行nginx日志切割。 安装docker 第一步,卸载旧版本docker。 若系统中已安装旧版本docker,则需要卸载旧版本docke…

大模型在资源全生命周期的应用探索

资源全生命周期管理的传统价值 运营商的网络涉及接入网、数据网、承载网、核心网、传输网、无线网、光缆网、云专网、动力网、业务平台等十数类大专业。网络资源的全生命周期体现在以下六大生产活动环节:网络规划→网络设计→网络工程建设→网络资源的投入使用→网络…

数据安全防护措施有哪些?防数据泄露的10大措施丨让你一次性看够!

古时烽火传信,密语藏于竹简之间,以防外泄,保家国安宁。 今朝数字洪流,数据如织,信息安全之重,不亚于昔日之密信。 在信息爆炸的时代,数据安全防护犹如筑起铜墙铁壁,以防数据泄露之患…

想要数字人直播平台赚钱,前期源码部署要注意哪些要点?

随着人工智能时代的到来,数字人直播的应用频率不断升高,展现巨大收益潜力的同时,也让不少想要通过数字人源码厂商搭建数字人直播平台的创业者产生好奇,并开始从各方面打听数字人直播平台怎么赚钱等相关问题的答案。 本期&#xf…

开营啦!| 上海交通大学 AI for Bioengineering 暑期学校开营仪式圆满举行!

开营仪式 2024年8月12日 ,“AI for Bioengineering暑期学校”在上海交通大学闵行校区理科群楼300号报告厅开幕。本次暑期学校吸引了来自国内外30余所高校(包括芝加哥大学、曼彻斯特大学、哥伦比亚大学、爱丁堡大学、南加利福尼亚大学、北京大学、清华大…

element-plus的表单输入框有清除按钮的,文字输入前后宽度不一致怎么解决

输入内容之后多了一个可清除的图标,输入框的宽度也被撑开了 根据输入前后的dom对比发现,多了一个图标的span标签 :deep(.el-input__wrapper) {position: relative;.el-input__inner {padding-right: 18px;}.el-input__suffix {position: absolute;right:…

服务器重启后的端口占用分析及解决方案

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

Android Studio报错 Failed to transform ‘...‘ using Jetifier. Reason null

Android Studio报错 Failed to transform ‘…‘ using Jetifier. Reason null 问题描述: AndroidX提示Failed to transform ‘/…/’ using Jetifier. Reason: null. 解决方案: 在gradle.properties中,将 android.enableJetifiertrue改为…

uniapp 对于scroll-view滑动和页面滑动的联动处理

需求 遇到一个需求 解决方案 这个时候可以做一个内页面滑动判断 <!-- scroll-y 做true或者false的判断是否滑动 --> <view class"u-menu-wrap" style"background-color: #fff;"><scroll-view :scroll-y"data.isGo" scroll-wit…

mongodb连表查询,postman使用

要实现与SQL类似的查询&#xff0c;你需要使用聚合框架&#xff08;Aggregation Framework&#xff09; SELECT b.name, a.* FROM user a LEFT JOIN order b ON a.id b.id WHERE b.name LIKE %acd%; 从MongoDB 3.2版本开始&#xff0c;引入了聚合框架中的$lookup阶段&#xf…

【JS】详解浏览器的5 种Observer: Mutation、Intersection、Performance、Resize、Reporting

文章目录 1、IntersectionObserver 交叉观察器用法使用场景 2、MutationObserver 变动观察器用法使用场景 3、ResizeObserver 尺寸变化观察器用法使用场景 4、PerformanceObserver 性能观察器用法使用场景 5、ReportingObserver用法使用场景 总结 网页开发中我们经常要处理用户…

第三方jar自带logback导致本地日志文件不生成

1.问题及解决 这是依赖的jar包&#xff0c;自己有logback&#xff0c;只打印到控制台&#xff0c;导致我们项目里配置的error级别日志不会生成到日志文件中去。ai给的答案是自己控制加载顺序&#xff0c;但很麻烦&#xff0c;--logging.config也不行&#xff0c;最好下了个7z压…

Grafana 可视化监控和告警

前言 在现代分布式系统和云原生环境中&#xff0c;为了确保复杂的分布式系统和服务的高可用性、可靠性和性能&#xff0c;通常采用实时可视化监控和分析&#xff0c;实现故障快速响应、资源优化和安全保障&#xff0c;从而提升用户满意度和运营效率。 在目前主流的解决方案中…

vue 获取当前页面路由

vue2 &#xff1a; import { getCurrentInstance } from ‘vue’; //获取当前页路由 data() { return { currentRouter: ‘’,//默认路由 } } const { proxy } getCurrentInstance(); this.currentRouter proxy.$router.currentRoute.meta.title vue3 &#xff1a; import …

智能语音电话机器人的优势有哪些?

现在每个企业的客服成本都是非常高的&#xff0c;但是工作效率还不高&#xff0c;有的还存在简单粗暴的情况&#xff0c;因此如果使用语音机器人的话&#xff0c;就将会发生重大的转变了&#xff0c;不仅会提高效率&#xff0c;还会降低很多的人力成本&#xff0c;&#xff0c;…

【浏览器】f12控制台,如何选中click、hover才出现的元素(断点调试)

使用断点调试 以切换语言的弹窗为例 当鼠标点击select框时才显现选项&#xff0c;没有办法直接选中元素进行样式的调试 1. 按f12打开控制台&#xff0c;点击sources&#xff0c;按 ctrlo 查找你要开发的文件 2. 给元素添加断点&#xff08;如果操作的时候没有停&#xff0c;就…

丰田的接单式生产、零库存、快速换模之间关系如何?

前面讲了&#xff0c;丰田采用接单式生产&#xff0c;这让它的库存一直保持在较低水平&#xff0c;但这一切是怎么实现的&#xff1f;接单式生产、零库存和快速换模之间又有怎样的关系&#xff1f;今天就来简单聊下。 接单式生产 这可谓是丰田典型的快速响应。当4S门店销售人员…

[openSSL]TLS 1.3握手分析

文章目录 前言一、ECDHE密钥交换二、TLS单向身份认证三、TLS双向身份认证 前言 关于TLS握手网上资料很多&#xff0c;但是有一些写的很不清楚&#xff0c;导致学习时对概念和流程出现混淆&#xff0c;以下是我觉得写得比较清晰和准确的供学习参考。 浅析 TLS&#xff08;ECDHE…

【C++ 面试 - 基础题】每日 3 题(十三)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…