配置CMAKE编译环境:VSCODE + MinGW

news2024/10/2 14:33:39

一. MinGW安装

MinGW(Minimalist GNU For Windows)是个精简的Windows平台C/C++、ADA及Fortran编译器,相比Cygwin而言,体积要小很多,使用较为方便。

MinGW最大的特点就是编译出来的可执行文件能够独立在Windows上运行。

MinGW的组成:

  • 编译器(支持C、C++、ADA和Fortran)
  • GNU工具
  • mingw-get(用于Windows平台安装和部署MinGW和MSYS的命令行安装器)
  • mingw-get-inst(用于GUI打包)

1.1. 下载

MinGW官方网址:http://www.mingw.org/

点击“Download Installer”后会跳转到Sourceforge页面进行下载,也可以直接打开:MinGW - Minimalist GNU for Windows download | SourceForge.net

之后,会下载一个名为mingw-get-setup.exe的安装文件。

1.2. 安装下载器

运行刚刚下载的安装程序,看到如下界面:

点击“Install”,进入下面这个界面:

选择安装路径

默认安装路径为C:\MinGW,我习惯安装在D盘下,点击“Change”修改路径如下:

点"Continue"继续。

安装过程

安装完成后,桌面出现这样一个图标。

安装器

这只是个安装器,需要在线下载真正的安装内容,所以速度不会快。

1.3. 选择安装组件

运行安装程序,有的版本在安装之后会自动运行,看到下面这个界面:

选择安装组件

选择需要安装的组件,右键选择“Mark for Installation”,之后选择"Installation -> Apply Changes”。

1.4. GCC/G++

这里推荐安装的是GCC与G++组件,选择组件

 

先选择左边的"MinGW Base System"选项,之后再右边找到gcc与g++。

之后点击菜单栏中的“Installation”进行安装。下载一会之后会提示:

注意:在安装程序中,复选框为绿色表示已经安装的项目,复选框为白色表示没有安装的项目。因此如果需要删除,只需要在绿色复选框右键后选择“Mark for removal”即可。

1.5  设置MinGW环境变量

 系统环境变量新建一个MinGW变量,将刚才的安装路径放进去,PATH 中也添加一下这个路径加\bin。

二、VSCODE

2.1 安装VSCODE

略。

2.2 VSCODE插件

安装以下插件:

C/C++

C/C++ Extension Pack

CMake

CMake Tools

2.3 创建CMake项目

新建一个文件夹,用VSCODE打开;在里面建一个test.cpp文件;

然后ctrl+shitf+p, 输入cmake:q

选择快速入门

在选择要使用的编译器

 

之后给工程起个名,点击回车就会生成一个默认的CMakeLists文件:

 

2.4 编译 

 一种是打开终端自己用指令编译,另一种是使用VSCODE的编译快捷键:

最下面这里,其中 第一项(那个圈叉和那个感叹三角),是错误提示;

第二项(圆圈叹号CMake),这个是当前选中工程的编译属性,debug/release等等l

第三项(两个交叉扳手) 这个是选择的编译器; 

第四项(齿轮),这个就是编译键,点击这个就会编译所选的工程;

第五项([all]),这个是你当前选中要编译的工程,如果一个解决方案里有很多工程,通过点击这个切换;

第六项(爬虫),这个是运行当前工程;

第七项(三角),在终端里运行;

第八项(烧杯),单元测试;


 

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

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

相关文章

[Linux]进程替换

🥁作者: 华丞臧. 📕​​​​专栏:【LINUX】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉 LeetCode刷题网站 文…

HashMap设计思想学习

HashMap设计思想学习引言树化与退化红黑树的优势索引计算put流程扩容(加载)因子为何默认是 0.75fhashMap并发丢失数据问题jdk 1.7并发死链问题key 的设计引言 hashmap在jdk 1.7之前是数组链表结构,而jdk1.8之后变为是数组(链表|红黑树) 树化…

【第38天】不同路径数问题 | 网格 dp 入门

本文已收录于专栏🌸《Java入门一百例》🌸学习指引序、专栏前言一、网格模型二、【例题1】1、题目描述2、解题思路3、模板代码4、代码解析5.原题链接三、【例题2】1、题目描述2、解题思路3、模板代码4、代码解析5.原题链接三、推荐专栏四、课后习题序、专…

大型物流运输管理系统源码 TMS源码

大型物流运输管理系统源码 TMS是一套适用于物流公司的物流运输管理系统,涵盖物流公司内部从订单->提货->运单->配车->点到->预约->签收->回单->代收货款的全链条管理系统。 菜单功能 一、运营管理 1、订单管理:用于客户意向订…

ChatGPT 到底强大在哪里?(文末有彩蛋)

ChatGPT 是由 OpenAI 开发的一个人工智能聊天机器人程序,于2022年11月推出。该程序使用基于 GPT-3.5 架构的大型语言模型并通过强化学习进行训练。ChatGPT 以文字方式交互,而除了可以通过人类自然对话方式进行交互,还可以用于相对复杂的语言工…

一定要收藏的面试思维导图,粉丝分享面试经验

一位粉丝分享面试经验:1.常见面试题有哪些?主要从以下一些知识点做了准备: 常用的分析方法、Excel、SQL、 A/B测试、产品分析。然后每份面试针对职位要求,还有前期和HR聊天一点点了解这个职位之后,定向准备。 Excel、S…

OpenMMLab 实战营打卡 - 第 7 课

OpenMMLab MMSegmentation内容概要MMSegmentation统一超参MMSegmentation 的项目结构分割模型的模块化设计分割模型的配置文件主干网络的配置ResNet v1c主解码头的配置辅助解码头的配置数据集配置数据处理流水线常用训练策略参考资料内容概要 • MMSegmentation 项目概述 • M…

TSDF算法应用与源码详解

数据与代码链接见文末 1.TSDF整体概述 (1)需要准备的输入 1.原始图片;2.对应的深度信息;3.每张图的相机位姿;4.相机内参 原始输入图像数据(就是一个场景多个视角拍摄的结果) 输入图像的深度信息,位姿信息等(一般由相机得到,也可以通过算法得到) (2)整体概述…

【DFS并查集】岛屿数量

经典的dfs/bfs问题,给一个起点开始搜索,满足条件则继续调用dfs/bfs 从没有访问过的某个陆地出发,将所有能到达的陆地的状态都记录为已访问。下次出发不从已访问的陆地出发,每次出发前都把岛屿数 1即可 class Solution { public…

STM32开发(9)----CubeMX配置外部中断

CubeMX配置外部中断前言一、什么是中断1.STM32中断架构体系2.外部中断/事件控制器(EXTI)3.嵌套向量中断控制器(NIVC)二、实验过程1.CubeMX配置2.代码实现3.硬件连接4.实验结果总结前言 本章介绍使用STM32CubeMX对引脚的外部中断进…

MySQL 3:MySQL数据库基本操作 DQL

数据库管理系统的一个重要功能是数据查询。数据查询不应简单地返回数据库中存储的数据&#xff0c;还应根据需要对数据进行过滤&#xff0c;确定数据的显示格式。MySQL 提供了强大而灵活的语句来实现这些操作。MySQL数据库使用select语句查询数据。 select [all|distinct]<…

09- 机器学习经典流程 (中国人寿保费项目) (机器学习)

删除特征: data data.drop([region, sex], axis1)特征数据调整: data.apply( ) # 体重指数&#xff0c;离散化转换&#xff0c;体重两种情况&#xff1a;标准、肥胖 def convert(df,bmi):df[bmi] fat if df[bmi] > bmi else standardreturn df data data.apply(convert, …

EXCEL-职业版本(1)

EXCEL职业版本(1) 工作表 插入 注&#xff1a;默认会在鼠标选中的sheet后面新增&#xff0c;例如图中&#xff0c;当前选中的是sheet2&#xff0c;点击新增后会在sheet2后面自动新增一个sheet 删除 移动或者复制 类似于copy一整个sheet的所有内容 step1 右击【sheet名称】选…

Cordova

一、简介 Cordova 是用 Web 技术&#xff08; HTML&#xff0c;CSS 和 JS &#xff09;构建移动应用的平台。我们可以认为Cordova 是一个容器&#xff0c;用于将的 Web 应用移植到移动端&#xff0c;同时支持移动端的功能&#xff08;例如&#xff1a;定位、蓝牙、摄像头等&am…

Linux内核并发与竞争-原子操作

一.原子操作的概念首先看一下原子操作&#xff0c;原子操作就是指不能再进一步分割的操作&#xff0c;一般原子操作用于变量或者位操作。假如现在要对无符号整形变量 a 赋值&#xff0c;值为 3&#xff0c;对于 C 语言来讲很简单&#xff0c;直接就是&#xff1a; a3但是 C 语言…

机器学习基本原理总结

本文大部分内容参考《深度学习》书籍&#xff0c;从中抽取重要的知识点&#xff0c;并对部分概念和原理加以自己的总结&#xff0c;适合当作原书的补充资料阅读&#xff0c;也可当作快速阅览机器学习原理基础知识的参考资料。 前言 深度学习是机器学习的一个特定分支。我们要想…

Elasticsearch bucket_script、bucket_selector、bucket_sort 区别和应用场景?

1、实战问题POST test-002/_bulk {"index":{"_id":1}} {"name": "张三","city": "beijing"} {"index":{"_id":2}} {"name": "李四","city": "beijing&qu…

简信CRM:医疗健康行业数字化解决方案

随着社会群体健康意识提升、用户消费习惯变化、新冠疫情冲击等因素&#xff0c;人们对于个人和公共安全健康问题就越发重视&#xff0c;而且已经逐渐从对“病”的被动治疗转变为对“健康”的主动管理&#xff0c;医疗健康行业呈现出一片火热的趋势。但医疗健康行业的情况比较复…

idekCTF 2022 比赛复现

Readme 首先 []byte 是 go 语言里面的一个索引&#xff0c;比如&#xff1a; package mainimport "fmt"func main() {var str string "hello"var randomData []byte []byte(str)fmt.Println(randomData[0:]) //[104 101 108 108 111] }上面这串代码会从…

Java程序运行机制

Java语言既具有编译型语言的特征&#xff0c;又具有解释型语言的特征&#xff0c;Java程序要经过先编译后解释两个阶段。高级语言的运行机制&#x1f4cd;编译型语言使用专门的编译器&#xff0c;针对特定的平台&#xff08;移植性差&#xff09;&#xff0c;将高级语言的源代码…