工程师 - MinGW

MinGW

Minimalist GNU for Windows,前身为mingw32,是一个免费开源的软件开发环境,从2010年开始项目停止并不再使用。后续提供MinGW-w64。

MinGW包括:

 - 移植到Windows上的GNU编译器集(GCC),包括C、C++、ADA和Fortran编译器。

 - 适用于Windows的GNU Binutils(汇编器、链接器、归档管理器 / assembler, linker, archive manager)

MinGW的用途是什么?

MinGW是一个基于GNU GCC和Binutils项目的编译器系统,它可以将代码编译和链接到Win32(Windows)系统上运行,生成本地微软Windows应用程序。它提供C、C++和Fortran编译器以及其他相关工具。

What is the use of MinGW?

MinGW is a compiler system based on the GNU GCC and Binutils projects that compiles and links code to be run on Win32 (Windows) systems. It provides C, C++ and Fortran compilers plus other related tools.

所以,通俗的说,MinGW就是用你在Linux上习惯的方式来使用GCC在Windows平台上编码并生成可运行的Windows程序。

MinGW是一个在Windows平台上使用的完整的GCC工具链(包括部分前端功能,如C、C++、Ada、Go等编程语言的编译),代码编译和链接过程中使用的是Windows操作系统组件C运行时库msvcrt.dll。它试图尽可能做到最简最少最小(因此而得名)。

MinGW并不试图在Windows之上提供一个完整的POSIX层,它也不要求你与一个特殊的兼容库链接(如上所说,只使用了Windows系统自带的库,并不依赖于任何第三方C-Runtime DLLs)。

Cygwin is a POSIX emulation layer, while MinGW provides functions supplied by the Win32 API. MinGW-w64 is a fork of MinGW that supports 64-bit Windows.

MinGW-w64

https://www.mingw-w64.org/

Mingw-w64 is an advancement of the original mingw.org project, created to support the GCC compiler on Windows systems. It has forked it in 2007 in order to provide support for 64 bits and new APIs. It has since then gained widespread use and distribution.

Mingw-w64是原mingw.org项目的一个进化版,用于在Windows系统上支持GCC编译器。它在2007年从原MinGW分支出来,以提供对64位和新的API的支持。此后,它获得了广泛的使用和传播。

较新的MinGW-w64带有大约99%完整的Windows API绑定(不包括ATL等),包括x64支持和实验性ARM实现。你可能偶尔会发现一些奇特的常量未被定义,但对于99%的人在99%的时间内使用的东西,它工作得非常好。

https://sourceforge.net/projects/mingw/

MinGW: A native Windows port of the GNU Compiler Collection (GCC), with freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All of MinGW's software will execute on the 64bit Windows platforms.

Downloads - MinGW-w64

https://www.mingw-w64.org/downloads/

选择MinGW-W64-builds,这个是纯Windows平台使用的。其他的很多就是其他平台下使用MinGW-w64,是交叉编译了,比如在Ubuntu下使用MinGW,编译出可以在Windows下执行的程序。

再比如,Cygwin里,MinGW作为一个包,可以安装。装完后,就可以使用MinGW作为交叉编译器,编出在Windows下运行的exe文件了。

下载地址:https://github.com/niXman/mingw-builds-binaries/releases

关于MinGW,可选Architecture : i686和x86_64,可选Threads Model种类:posix、win32和MCF,可选Exception:seh和silj,第二个之前版本有,现在没了。

可选的C运行库:msvcrt和ucrt。

i686平台下,只有dwarf一种选中,是一种调试信息文件格式。

14.2是gcc的版本,v12-rev0是MinGW-w64的发布版本。

下载压缩文件后,解压缩到合适路径。

MinGW目录下的bin路径,要加入到系统环境变量中,在System variables的Path中。

然后打开命令行,就可以执行gcc --version了。

使用gcc编译C代码,就会得到可执行的exe文件。

在Windows下使用MinGW的好处,方便了在Linux下用惯了GCC套件的开发者,并跟随GCC版本更新。如前面可选的MinGW版本所列,MinGW编译器既可以使用Windows API编程,也可以使用POSIX编程。

  


MinGW-w64

MinGW is an abbreviation of Minimalist GNU for Windows. The idea of MinGW is to provide a development platform for building cross-platform applications on Windows. The important pieces are:

* a set of FOSS Windows specific header files and import libraries which enable the use of the Windows API,

* a supplementary library and a runtime that fill in some gaps.

... but the term generally encompasses the cross-platform GNU development tools:

* GNU Compiler Collection (GCC),

* GNU Binutils (assembler, linker, archive manager),

* GNU Debugger (GDB),

* and miscellaneous utilities.

There are at least two projects implementing this idea:

* the original MinGW project, sometimes referred to as mingw.org

* and the MinGW-w64 project.

The MinGW-w64 project itself doesn't aim to be a software distribution. There are multiple builds of mingw-w64 toolchains and multiple software distributions built using MinGW-w64.

参考:

MSYS2 History - MSYS2

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

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

相关文章

EasyExcel(读取操作和填充操作)

文章目录 1.准备Read.xlsx(具有两个sheet)2.读取第一个sheet中的数据1.模板2.方法3.结果 3.读取所有sheet中的数据1.模板2.方法3.结果 EasyExcel填充1.简单填充1.准备 Fill01.xlsx2.无模版3.方法4.结果 2.列表填充1.准备 Fill02.xlsx2.模板3.方法4.结果 …

CKA认证 | Day7 K8s存储

第七章 Kubernetes存储 1、数据卷与数据持久卷 为什么需要数据卷? 容器中的文件在磁盘上是临时存放的,这给容器中运行比较重要的应用程序带来一些问题。 问题1:当容器升级或者崩溃时,kubelet会重建容器,容器内文件会…

Python调用R语言中的程序包来执行回归树、随机森林、条件推断树和条件推断森林算法

要使用Python调用R语言中的程序包来执行回归树、随机森林、条件推断树和条件推断森林算法,重新计算中国居民收入不平等,并进行分类汇总,我们可以使用rpy2库。rpy2允许在Python中嵌入R代码并调用R函数。以下是一个详细的步骤和示例代码&#x…

关于JAVA方法值传递问题

1.1 前言 之前在学习C语言的时候,将实参传递给方法(或函数)的方式分为两种:值传递和引用传递,但在JAVA中只有值传递(颠覆认知,基础没学踏实) 参考文章:https://blog.csd…

Excel基础知识

一:数组 一行或者一列数据称为一维数组,多行多列称为二维数组,数组支持算术运算(如加减乘除等)。 行:{1,2,3,4} 数组中的每个值用逗号分隔列:{1;2;3;4} 数组中的每个值用分号分隔行列&#xf…

基于DIODES AP43781+PI3USB31531+PI3DPX1207C的USB-C PD Video 之全功能显示器连接端口方案

随着USB-C连接器和PD功能的出现,新一代USB-C PD PC显示器可以用作个人和专业PC工作环境的电源和数据集线器。 虽然USB-C PD显示器是唯一插入墙壁插座的交流电源输入设备,但它可以作为数据UFP(上游接口)连接到连接到TCD&#xff0…

gazebo_world 基本围墙。

如何使用&#xff1f; 参考gazebo harmonic的官方教程。 本人使用harmonic的template&#xff0c;在里面进行修改就可以分流畅地使用下去。 以下是world 文件. <?xml version"1.0" ?> <!--Try sending commands:gz topic -t "/model/diff_drive/…

解决无法在 Ubuntu 24.04 上运行 AppImage 应用

在 Ubuntu 24.04 中运行 AppImage 应用的完整指南 在 Ubuntu 24.04 中&#xff0c;许多用户可能会遇到 AppImage 应用无法启动的问题。即使你已经设置了正确的文件权限&#xff0c;AppImage 仍然拒绝运行。这通常是由于缺少必要的库文件所致。 问题根源&#xff1a;缺少 FUSE…

Pytorch使用手册-DCGAN 指南(专题十四)

1. Introduction 本教程将通过一个示例介绍 DCGANs(深度卷积生成对抗网络)。我们将训练一个生成对抗网络(GAN),在给它展示大量真实名人照片后,它能够生成新的“名人”图片。这里的大部分代码来源于 PyTorch 官方示例中的 DCGAN 实现,而本文档将对该实现进行详细解释,并…

springboot配置oracle+达梦数据库多数据源配置并动态切换

项目场景&#xff1a; 在工作中很多情况需要跨数据库进行数据操作,自己总结的经验希望对各位有所帮助 问题描述 总结了几个问题 1.识别不到mapper 2.识别不到xml 3.找不到数据源 原因分析&#xff1a; 1.配置文件编写导致识别mapper 2.配置类编写建的格式有问题 3.命名…

html+css+js网页设计 美食 家美食1个页面

htmlcssjs网页设计 美食 家美食1个页面 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#xf…

【机器学习】【朴素贝叶斯分类器】从理论到实践:朴素贝叶斯分类器在垃圾短信过滤中的应用

&#x1f31f; 关于我 &#x1f31f; 大家好呀&#xff01;&#x1f44b; 我是一名大三在读学生&#xff0c;目前对人工智能领域充满了浓厚的兴趣&#xff0c;尤其是机器学习、深度学习和自然语言处理这些酷炫的技术&#xff01;&#x1f916;&#x1f4bb; 平时我喜欢动手做实…

Vue使用Tinymce 编辑器

目录 一、下载并重新组织tinymce结构二、使用三、遇到的坑 一、下载并重新组织tinymce结构 下载 npm install tinymce^7 or yarn add tinymce^7重构目录 在node_moudles里找到tinymce文件夹&#xff0c;把里面文件拷贝一份放到public下&#xff0c;如下&#xff1a; -- pub…

odoo中@api.model, @api.depends和@api.onchange 装饰器的区别

文章目录 1. api.model用途特点示例 2. api.depends用途特点示例 3. api.onchange用途特点示例 总结 在 Odoo 中&#xff0c;装饰器&#xff08;decorators&#xff09;用于修饰方法&#xff0c;以指定它们的行为和触发条件。api.model、api.depends 和 api.onchange 是三个常用…

EMNLP'24 最佳论文解读 | 大语言模型的预训练数据检测:基于散度的校准方法

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 点击 阅读原文 观看作者讲解回放&#xff01; 作者简介 张伟超&#xff0c;中国科学院计算所网络数据科学与技术重点实验室三年级直博生 内容简介 近年来&#xff0c;大语言模型&#xff08;LLMs&#xff09;的…

大数据技术-Hadoop(一)Hadoop集群的安装与配置

目录 一、准备工作 1、安装jdk&#xff08;每个节点都执行&#xff09; 2、修改主机配置 &#xff08;每个节点都执行&#xff09; 3、配置ssh无密登录 &#xff08;每个节点都执行&#xff09; 二、安装Hadoop&#xff08;每个节点都执行&#xff09; 三、集群启动配置&a…

PilotGo

title: 解锁 PilotGo&#xff1a;智能化运维的得力助手 date: ‘2024-12-29’ category: blog tags: PilotGo运维管理智能化工具技术应用 sig: ops archives: ‘2024-12’ author:way_back summary: PilotGo 作为一款创新的运维管理工具&#xff0c;凭借其智能化的特性和丰富的…

折腾日记:如何让吃灰笔记本发挥余热——搭建一个相册服务

背景 之前写过&#xff0c;我在家里用了一台旧的工作站笔记本做了服务器&#xff0c;连上一个绿联的5位硬盘盒实现简单的网盘功能&#xff0c;然而&#xff0c;还是觉的不太理想&#xff0c;比如使用filebrowser虽然可以备份文件和图片&#xff0c;当使用手机使用网页&#xf…

使用seata实现分布式事务管理

配置 版本说明&#xff1a;springCloud Alibaba组件版本关系 我用的是spring cloud Alibaba 2.2.1.RELEASE 、springboot 2.2.1.RELEASE、nacos 2.0.1、seata1.2.0,jdk1.8 seata 主要用于在分布式系统中对数据库进行事务回滚&#xff0c;保证全局事务的一致性。 seata的使用…

【总结】动态规划

线性dp LeetCode题单&#xff0c; 从记忆化搜索到递推 Pre&#xff1a; 从最初状态到最终状态等价&#xff0c;那么从最终状态开始和最初状态开始结果一样。 递归时不会产生其他负面结果&#xff0c;即无论何时进入递归&#xff0c;只要递归参数相同&#xff0c;结果就相同。 …