简明阐述MinGW,MSYS,MSYS2

2023-11-19

几年前的一个项目连同环境,不小心被我从硬盘上不可恢复的删掉了。

为了挽救,没头苍蝇似的在网上闯荡了几天,发现自己以前对MinGW的理解有着很大的误区。

本文不是攻略,只是希望以更简洁、清晰的描述,来帮助大家理解MinGW,防止重蹈我的覆辙。

一, MinGW是什么

MinGW,即Minimalist GNU for Windows,是一个原生的GCC(GNU Compiler Collection)的Windows接口集,具有用于建立原生Windows程序的可自由发布的头文件导入库。允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。其功能是允许控制台模式的程序使用微软的标准C运行时(C Runtime)库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95发行版以上的 Windows OS 有效。

已停止更新,内置的GCC停留在4.8.1版本

通俗点,抓重点,就是:跨Linux和Windows平台的,编译Windows程序的,包含头文件和端口库的工具链。

二,关联项目

Cygwin:         MinGW实际上是Cygwin的衍生品。但Cygwin更多是一个模拟的Unix环境,偏重于Unix软件移植到Windows。

Msys:             MinGW开发者从早期Cygwin分支的,配合MinGW工具链的,一个小型Linux模拟环境。扩展能力弱。

MinGW-W64:MinGW刚建立时,只能编译32位Windows程序。由于对提供64位支持的分歧,形成了不同的分叉,出现了可以支持32位和64位(区分版本)的MinGW-W64。它支持更多的 API,甚至支持 32 位 host 编译 64 位应用以及反过来的“交叉”编译。

                要注意的是,W64已经变成厂商名,而不是代表64位支持,如GCC源码的配置的三元组目标平台表示:

  1.                  -i386-pc-mingw32:- 32位x86指令集架构 - pc厂商 - mingw32系统 (MinGW系统时用)
    1.                  -i686-w64-mingw32:- 32位x86指令集架构 - W64 厂商 - mingw32系统(MinGW-W64系统时用)

Msys2:          由于MinGW+Msys总不更新,于是 Alex 等人建立了新一代的Msys项目,从较新Cygwin分支,但是更偏重于建立不依赖于WinAPI的原生Windows程序。有更优秀的包管理器 pacman,有活跃的开发者跟用户组,有大量预编译的软件包(虽然肯定没有Cygwin多)。

评论:Msys2为更新而来,不好的也是更新。旧的项目要是删了再想找回来,难于登天。它的服务器把旧包都删掉了-_-

下面的项目更多的是MinGW/W64工具集的不同发放形式:

  •                 TDM-GCC
    •                 MinGW Builds
      •                 MinGW Distro
    • -- 后面会有一些单独的说明,以及常见的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简明阐述MinGW,MSYS,MSYS2 的相关文章

随机推荐

  • 对人工智能芯片的一些看法

    人工智能芯片 2016年 随着阿尔法狗击败专业人类围棋棋手 已 深度学习 为基础的人工智能技术被大众所熟知 其实 深度学习 技术已经发展了有近30年的历史了 现在的 深度学习 的实现以神经网络技术为主 神经网络通过模拟大脑生物神经网络的连接
  • [OpenGL ES 06]使用VBO:顶点缓存

    OpenGL ES 06 使用VBO 顶点缓存 罗朝辉 http www cnblogs com kesalin 本文遵循 署名 非商业用途 保持一致 创作公用协议 这是 OpenGL ES 教程 的第六篇 前五篇请参考如下链接 OpenG
  • 数据库中连接(join)运算

    摘自 数据库原理与应用 第2版 宋金玉 陈萍 陈刚编著
  • Java学习前言—JDK、JRE、IntelliJ IDEA

    一 jdk java developer kit 与 jre java runtime environment 1 jdk是Java开发工具包 安装后可以编写Java程序 2 jre是Java运行环境 安装后可以运行Java程序 二 Ubu
  • Python爬虫工程师都需要掌握那些知识

    Python爬虫工程师都需要掌握那些知识 今天老师跟大家聊聊Python爬虫工程师需要掌握的知识 Python语言无论是在学术上还是就业上现在都非常受欢迎 很多都在学习Python 因为Python不仅能够做大数据分析 爬虫 云计算 还能做
  • SpringBoot 打 jar包和打war 包配置

    文章目录 1 前言 2 SpringBoot 打 jar 包 3 SpringBoot 打 war 包 4 小结 1 前言 目前我们熟知的SpringBoot 打包方式 一共分为两种 一种是打jar 包 内置tomcat 方式 yml 里的
  • 因果关系基本概念:后门标准

    阅读David Salazar的文章Causality To adjust or not to adjust后的笔记 文章目录 动机 实例 动机 在前面的文章中 我们知道就算控制再多的变量 也不一定能准确估计 采用后门标准 backdoor
  • 太阳神三国杀源代码 HOW TO BUILD

    HOW TO BUILD Tips stands for the folder where the repo is in VS2013 Windows Download the following packages 1 QT librari
  • 2016年1月15日(DEMO12-2ALPHA混合。)

    简而言之 alpha混合就是透明度 计算 Final src1 alpha src2 1 alpha 分解成RGB分量同样适用 其中 src1和src2为RGB格式 长16位 混合因子 0 255 长8位 创建alpha查找表 For 0到
  • Android插件:关闭WIFI下微信朋友圈视频自动播放插件开发过程详解

    本文将会详细介绍怎么开发一个屏蔽微信 7 0 5 朋友圈WIFI下自动播放视频插件 背景介绍 周五下班在地铁上刷微信时看到一个新闻 说是微信更新后在WIFI下自动播放视频还没法关闭 这个问题前几天我也遇到了 但是我记得设置里边有一个工作可以
  • 【代码随想录】回溯算法刷题

    代码随想录 回溯算法 组合 组合总和 III 电话号码的字母组合 组合总和 I 组合总和 II 分隔回文串 复原 IP 地址 子集 I 子集 II 递增子序列 全排列 I 全排列 II 重新安排行程 hard N 皇后 hard 解数独 h
  • js里map和reduce的用法

    map和reduce let arr 1 5 7 8 5 1 let arrNew arr map item gt item 2 console log map结果 arrNew 2 let arrNews for let i 0 i
  • 浅析Spring.NET(一):Spring.NET及简单使用

    浅析Spring NET 文章目录 浅析Spring NET 一 Spring NET 简单使用 1 什么是 Spring NET 2 快速创建第一个使用 Spring NET 的程序 注意事项 一 Spring NET 简单使用 最近用到
  • 数据库第七周【第五章作业存储过程】

    本章的作业题目来自第八章 T SQL建立存储过程的标准形式 Create procedure
  • Ubuntu16.04系统下安装osg3.7+osgearth3.3

    Ubuntu16 04系统下安装osg3 7 osgearth3 4 前言 安装背景 安装全过程 前置库的准备 更新CMake 升级gcc 升级gdal sqlite3安装 PROJ安装 Poppler安装 freetype安装 安装ope
  • 个人整理的数据集(手写中文数据、发票数据、快递单数据、车牌数据)

    本人在工作生活中收集了各个方面比较多的真实的数据集如下 一 手写中文数据集 1 档案类数据 此数据集为手写档案数据 数量较大 大约128G 图像均未标注 ex 2 手写作文数据 此数据集为手写作文数据 是大约800M左右 图像按行提供位置和
  • 1081 检查密码

    本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能 该网站要求用户设置的密码必须由不少于6个字符组成 并且只能有英文字母 数字和小数点 还必须既有字母也有数字 输入格式 输入第一行给出一个正整数 N 100 随后 N 行 每行给
  • python判断一个数是奇数还是偶数_在python中检查一个数字是奇数还是偶数

    参见英文答案 gt python checking odd even numbers and changing outputs on number size 15个 我正在尝试制作一个程序 检查一个单词是否是一个回文并且我已经到目前为止它可
  • 基于依存句法分析的实体关系提取

    基于依存句法分析的实体关系提取 1 概述 概述 句法分析是自然语言处理中的关键技术之一 其基本任务是确定句子的句法结构或者句子中词汇之间的依存关系 主要包括两方面的内容 一是确定语言的语法体系 即对语言中合法的句子的语法结构给与形式化的定义
  • 简明阐述MinGW,MSYS,MSYS2

    几年前的一个项目连同环境 不小心被我从硬盘上不可恢复的删掉了 为了挽救 没头苍蝇似的在网上闯荡了几天 发现自己以前对MinGW的理解有着很大的误区 本文不是攻略 只是希望以更简洁 清晰的描述 来帮助大家理解MinGW 防止重蹈我的覆辙 一