首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单解释什么是MinGW

简单解释什么是MinGW
EN

Stack Overflow用户
提问于 2011-10-17 14:49:55
回答 5查看 28.7K关注 0票数 52

我是一个狂热的Python用户,似乎我需要在我的Windows机上安装MinGW来编译一些库。我对MinGW和GCC有点疑惑。这是我的问题(从一个真实的虚拟观点来看):

所以Python是一种解释和编译的语言。有Linux和Windows的Python实现,人们只需安装并使用二进制文件来执行他的代码。它们捆绑了一堆您可以使用的内置库。据我所知,Ruby也是如此。

现在,我已经做了一点C,我知道有一个要编译它。它有自己的内置库,这些库看起来就是你可以使用的头文件。现在,回到学生时代,C在一个名为Turbo-C的类似vi的集成开发环境中编写代码,然后按F9进行编译。这就是我的C语言教育结束的地方。

什么是MinGW,什么是GCC?我一直主要在Windows系统上工作,最近甚至开始使用Cygwin。它们不是一样的吗?

一个简单的解释会对这些区域有所帮助。

(如果这篇文章听起来很傻,我很抱歉。我想我应该在这里问一下。忽略这些核心位不会让任何人成为更好的程序员。)

谢谢大家。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-10-17 18:03:33

MinGW是一个完整的针对视窗平台的GCC工具链(包括六个前端,如C、C++、Ada、Go等等),它编译并链接到msvcrt.dll中的视窗操作系统组件C运行库。相反,它试图做到最小(由此得名)。

这意味着,与Cygwin不同,MinGW不会试图在Windows之上提供完整的POSIX层,但另一方面,它不需要您链接到特殊的兼容性库。

因此,它对您编写的程序也没有任何GPL许可证含义(值得注意的例外:分析库,但您通常不会分发这些库,所以这并不重要)。

较新的MinGW-w64附带了大约99%完整的Windows API绑定(不包括ATL等),包括x64支持和实验性的ARM实现。你可能偶尔会发现一些奇怪的常量没有定义,但对于99%的人来说,99%的时间里,它工作得很好。

您还可以使用POSIX中的大部分内容,只要它是在Windows下以某种形式实现的。一个主要的POSIX不能与MinGW一起工作的东西是fork,很简单,因为在Windows下没有这样的东西(Cygwin经历了很多痛苦来实现它)。

还有一些其他的小事情,但总而言之,大多数事情都是可以工作的。

所以,用一个非常简单的句子: MinGW(-w64)是一个“朴实无华的编译器工具”,它允许你为Windows编写本机二进制可执行文件,不仅是用C和C++,也可以是其他语言。

票数 38
EN

Stack Overflow用户

发布于 2011-10-17 18:04:37

要编译C程序,您需要针对特定计算机的C实现

C实现基本上由一个编译器(它的预处理器和头文件)和一个库(现成的可执行代码)组成。

在安装了Windows的计算机上,包含大多数现成可执行代码的库与gcc编译器不兼容...因此,要在Windows中使用这个编译器,您需要一个不同的库:这就是MinGW进入的地方。MinGW提供了与gcc一起实现C语言所需的库。

Windows库和MSVC一起构成了不同的实现。

票数 20
EN

Stack Overflow用户

发布于 2011-10-17 14:55:04

MinGW是一套包含GCC (以及其他工具)的开发工具,而GCC是该套件中的一名C编译器。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7790262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档