MinGW-w64的安装详细步骤(c/c++的编译器gcc、g++的windows版,win10、win11真实可用)

news2024/9/26 1:16:13

文章目录

  • 1、MinGW的定义
  • 2、MinGW的主要组件
  • 3、MinGW-w64下载与安装
      • 3.1、下载解压安装地址
      • 3.2、MinGW-w64环境变量的设置
  • 4、验证MinGW是否安装成功
  • 5、编写一段简单的代码验证下
  • 6、总结

1、MinGW的定义

MinGW(Minimalist GNU for Windows) 是一个用于 Windows 平台的开发工具集,它提供了一组 GNU 工具和库,可以用于编译和构建本地的 Windows 应用程序。MinGW 的目标是在 Windows 环境下提供类似于 Unix/Linux 环境下的开发工具,使开发者能够轻松地在 Windows 上编写和编译 C、C++ 等程序。

2、MinGW的主要组件

  • GCC(GNU Compiler Collection): GCC 是一个开源的编译器套件,支持多种编程语言,包括 C、C++、Fortran 等。在 MinGW 中,GCC 被用来编译和生成 Windows 平台下的可执行文件。

  • Binutils:Binutils 是一组用于处理二进制文件的工具,包括汇编器、链接器、目标文件处理器等。在 MinGW 中,Binutils 用于将编译后的源代码转换为可执行文件。

  • 运行时库(Runtime Libraries): MinGW 提供了 Windows 下所需的 CC++ 运行时库,这些库是在编译和链接时所需要的,以便在 Windows 环境下运行程序。

  • MSYS(Minimal SYStem): MSYS 是一个轻量级的 Unix-like 环境,它在 Windows 上提供了一些基本的 Unix 命令行工具,使开发者能够更方便地使用命令行进行开发和构建。

MinGW 可以与其他开发工具集(如 Visual Studio)一起使用,但它的重点是提供一个简单的方式来在 Windows 上进行开发,无需依赖复杂的集成开发环境(IDE)。MinGW 的使用可以让开发者更接近标准的开发环境,同时也方便了跨平台的开发。

需要注意的是,MinGWMSYS2 是两个不同的项目,虽然它们的名称和目标相似,但有一些区别。MSYS2MinGW 的基础上提供了更先进的包管理系统和一些额外的工具,使得在 Windows 上的开发更加便捷。

3、MinGW-w64下载与安装

3.1、下载解压安装地址

  • 官方下载网站:MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net。

在这里插入图片描述

  • 在这个页面下方找到最新版:
    在这里插入图片描述

  • x86_64是指64位的操作系统,i686是指32位的操作系统。现在系统都是64位操作系统,所以选择x86_64

  • win32是开发windows系统程序的协议,posix是其他系统的协议(例如LinuxUnixMac OS)。

  • 异常处理模型 seh(新的,仅支持64位系统),sjlj (稳定的,64位和32位都支持), dwarf (优于sjlj的,仅支持32位系统)

在这里插入图片描述

  • 点击链接等待5秒就可以下载了。

在这里插入图片描述

  • 然后解压就行:
    在这里插入图片描述
  • 解压完毕差不多就是这个样子:
    在这里插入图片描述
  • 然后再bin目录里面就可以找到g++.exe或者gcc.exe:
    在这里插入图片描述

3.2、MinGW-w64环境变量的设置

  • 点击此电脑的属性:
    在这里插入图片描述
  • 点击高级系统设置:
    在这里插入图片描述
  • 点击环境变量:
    在这里插入图片描述
  • 点击系统变量中新建一个环境变量,环境变量名字我这里是MinGW_HOME,值是你安装的路径:
    在这里插入图片描述
    在这里插入图片描述
  • 然后点击系统变量中的PATH环境变量,新建一个环境变量,路径是安装目录下的bin目录路径,因为gcc.exe和g++.exe都在这里面:
    在这里插入图片描述
    在这里插入图片描述
  • 或者你也可以这样设置路径:
    在这里插入图片描述

4、验证MinGW是否安装成功

  • windows+r打开命令行管理器并且输入cmd:
    在这里插入图片描述
  • 然后输入gcc -v 或者g++ -v 或者 gcc --version 或者 g++ --version:
    在这里插入图片描述
    在这里插入图片描述

5、编写一段简单的代码验证下

- 在这个目录下或者任意目录下新建一个main.cpp:
在这里插入图片描述

  • 代码如下:
#include<iostream>
#include<stdio.h>
int main(){
	std::cout<<"mingw"<<std::endl;
	printf("mingw\n");
	return 0;
}
  • 在这个路径下输入cmd进入命令行模式:
    在这里插入图片描述
  • 输入g++ maiin.cpp就会生成a.exe:
    在这里插入图片描述
  • 直接 a.exe,就会输出结果:
    在这里插入图片描述

6、总结

gcc或者g++是c/c++的编译器,但是通常在 Linux 上才能用。如果要在windows上用,我们要借助MinGW使用它。

MinGW(Minimalist GNU for Windows)是一个开发工具集,主要用于在 Windows 环境下使用类似于 Unix/Linux 环境下的 GNU 工具,包括 gcc(GNU Compiler Collection)和 g++(GNU C++ Compiler)等编译器。

MinGW 提供了一种在 Windows 上进行 C 和 C++ 编程的方式,使开发者可以使用常见的编译器、链接器和工具,从而能够将源代码编译成可执行文件,就像在 Unix/Linux 环境下一样。通过 MinGW,开发者可以使用标准的 C/C++ 编译器,同时也可以访问一些常用的命令行工具,从而实现在 Windows 上进行跨平台的开发。

MinGW 的目标之一是提供一个轻量级的开发环境,使开发者能够在 Windows 上编写和编译原生的 C/C++ 程序,而无需依赖于大型的集成开发环境(IDE)。开发者可以在命令行中使用 gcc 和 g++ 命令来编译和链接程序,也可以配合其他文本编辑器进行开发。

总之,MinGW 是在 Windows 平台上使用 gcc 和 g++ 等 GNU 工具的一种方式,适用于希望在 Windows 上进行 C 和 C++ 开发的开发者。

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

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

相关文章

无菌车间ar实景巡检为企业带来了诸多好处

随着科技的不断发展&#xff0c;AR增强现实技术逐渐渗透到各个行业&#xff0c;为生产制造带来了前所未有的便捷。特别是在制造业中&#xff0c;AR增强现实技术的应用正逐步改变着传统的生产模式&#xff0c;为企业带来了诸多优势。 传统的巡视方式往往需要人工实地查看设备&am…

多进程利用TCP进行信息群发功能

/服务器的代码 #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #define SEVER_IP &quo…

抖音商品上架有攻略:详细介绍步骤与注意事项

抖音是一款非常流行的短视频分享平台&#xff0c;也是一个非常适合进行商品销售的平台。上架商品是在抖音上进行电商销售的重要一环&#xff0c;下面不若与众将介绍抖音商品的上架流程和注意事项。 1. 注册账号和认证&#xff1a;首先&#xff0c;你需要在抖音平台上注册一个账…

同步辐射散射数据处理分析方法及实验过程

同步辐射散射数据处理分析方法及过程 同步辐射散射测试是一种先进的材料表征技术&#xff0c;已广泛应用于材料科学、生物学、化学等领域。同步辐射散射技术利用同步辐射光源产生的高亮度辐射&#xff0c;通过散射实验来研究样品的结构、形态和动态行为。 同步辐射散射处理分析…

ThreadLLocal的学习

ThreadLocal的学习 ThreadLocal的学习1.ThreadLocal是什么&#xff1f;2.ThreadLocal的数据结构Java的四种引用类型 3.ThreadLocal为什么会出现内存泄露&#xff1f;既然会出现内存泄露为什么Entry的key还要使用弱引用&#xff1f;如何避免内存泄露&#xff1f; ThreadLocal的学…

数据分析案例《共享单车使用量综合分析案例》上新啦

《共享单车使用量综合分析案例》是一门数据分析和统计学的课程&#xff0c;旨在教学生如何综合运用数据分析技术&#xff0c;研究共享单车使用量的变化和影响因素&#xff0c;从真实的数据中探索有关共享单车使用量的问题&#xff0c;并通过数据挖掘、统计分析等方法&#xff0…

详解推送Git分支时发生的 cannot lock ref 错误

在码云上建了一个项目仓库,分支模型使用 git-flow ,并在本地新建了一个功能分支 feature/feature-poll。后来在推送时发生错误,提示 cannot lock ref ...... 这样的错误信息。下面复盘一下具体过程和解决办法,以供参考。 在码云中建立仓库时,考虑到想按照 GitFlow 的模式…

怎么把两个pdf合并成一个?这几种方法值得了解

怎么把两个pdf合并成一个&#xff1f;在日常工作中&#xff0c;我们经常需要合并两个或多个PDF文件成一个。但是&#xff0c;对于不熟悉PDF编辑器的人来说&#xff0c;这可能是一个棘手的问题。在本文中&#xff0c;我们将介绍一些合并PDF文件的方法&#xff0c;有需要的小伙伴…

音视频--视频数据传输

参考文献 H264码流RTP封装方式详解&#xff1a;https://blog.csdn.net/water1209/article/details/126019272H264视频传输、编解码----RTP协议对H264数据帧拆包、打包、解包过程&#xff1a; https://blog.csdn.net/wujian946110509/article/details/79129338H264之NALU解析&a…

【Leetcode】对称二叉树||递归(击败100%)

step by step. 题目&#xff1a; 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff1a; 输入&#xff1a;root [2,1,3] 输出…

lc2536.子矩阵元素加1

暴力解法&#xff1a;直接按照题目所示在矩阵的相应位置加一 时间复杂度&#xff1a;O(n2 * queries.length) 空间复杂度&#xff1a;O(1) 二维差分&#xff1a;创建二维差分数组&#xff0c;通过对差分数组的修改来影响原来的数组&#xff0c;最后还原 时间复杂度&#x…

FcaNet: Frequency Channel Attention Networks

FcaNet: Frequency Channel Attention Networks Abstract预备知识GAPDTC&#xff08;离散余弦变换&#xff09; 本文methodRevisiting DCT and Channel AttentionChannel Attention Multi-Spectral Channel AttentionMulti-Spectral Channel Attention ModuleCriteria for Choo…

超导材料LK-99烧制工艺中高真空度及其气氛环境控制的解决方案

摘要&#xff1a;根据近期LK-99超导材料研究报道&#xff0c;我们分析此材料制备采用了真空烧结工艺。由于目前大部分复现研究所用的真空烧结技术和设备都非常简陋&#xff0c;使得LK-99的复现性很差。为此我们提出了真空度准确控制解决方案&#xff0c;其目的第一是实现烧结初…

排序(快速排序,归并排序,插入排序,选择排序,冒泡排序,希尔排序,堆排序)

给定你一个长度为 n 的整数数列。 请你对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行&#xff0c;第一行包含整数 n 。 第二行包含 n 个整数&#xff08;所有整数均在 1∼109 范围内&#xff09;&#xff0c;表示整个数列。 输…

【深度学习MOT】SMILEtrack SiMIlarity LEarning for Multiple Object Tracking,论文

论文&#xff1a;https://arxiv.org/abs/2211.08824 文章目录 AbstractIntroduction2. 相关工作2.1 基于检测的跟踪2.1.1 检测方法2.1.2 数据关联方法 2.2 基于注意力的跟踪 3. 方法3.1 架构概述3.2 用于重新识别的相似性学习模块&#xff08;SLM&#xff09; Experimental Res…

【Docker晋升记】No.2 --- Docker工具安装使用、命令行选项及构建、共享和运行容器化应用程序

文章目录 前言&#x1f31f;一、Docker工具安装&#x1f31f;二、Docker命令行选项&#x1f30f;2.1.docker run命令选项&#xff1a;&#x1f30f;2.2.docker build命令选项&#xff1a;&#x1f30f;2.3.docker images命令选项&#xff1a;&#x1f30f;2.4.docker ps命令选项…

上篇文章viewerjs(npm包补丁)的错误更正。(npm补丁本地没问题,流水线打包要没效果,要么报错)

1、上篇文档的包补丁在本地使用没有问题&#xff0c;并且同事拉代码后也会自动同步npm_modules&#xff0c;也没有问题 2、问题出现在打包上&#xff0c;我这边的项目是用teambition上的飞流设置的流水线来进行打包的&#xff0c;里面用到了两个指令 yarn install npm run bu…

学习左耳听风栏目90天——第二天 2/90(学习左耳朵耗子的工匠精神,对技术的热爱)【程序员如何用技术变现(上)】

总结&#xff1a; 要去经历大多数人经历不到的&#xff0c;要把学习时间花在那些比较难的地方。要写文章就要写没有人写过的&#xff0c;或是别人写过&#xff0c;但我能写得更好的。更重要的是&#xff0c;技术和知识完全是可以变现的。学好英文&#xff0c;看技术文档 程序员…

解决idea编辑application.yml文件或properties文件没有提示问题

注意&#xff1a;这里说的没有提示&#xff0c;是针对application.properties和application.yml文件 解决办法&#xff1a;在idea的插件面板中&#xff0c;禁用或卸载 wl Spring Assistant插件即可解决问题。

python技术栈 之 单元测试中mock的使用

一、什么是mock&#xff1f; mock测试就是在测试过程中&#xff0c;对于某些不容易构造或者不容易获取的对象&#xff0c;用一个虚拟的对象来创建以便测试的测试方法。 二、mock的作用 特别是开发过程中上下游未完成的工序导致当前无法测试&#xff0c;需要虚拟某些特定对象…