c – 简单的解释什么是MinGW

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

所以Python是解释和编译的语言。有Linux和Windows的Python实现,它们只需安装并使用二进制执行他的代码。他们捆绑了一堆可以使用的内置库。与我读过的Ruby相同。

现在,我已经做了一点点C,我知道有一个编译它。它的内置库似乎被称为头文件,您可以使用它。现在,回到学校的日子里,C,在一个名叫Turbo-C的类似VI的IDE中编写代码,然后点击F9进行编译。这几乎是C教育结束的地方。

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

打击这些领域的简单说明将是有帮助的。

(如果这篇文章听起来很愚蠢/愚蠢,我很抱歉,我以为我会问这个问题,忽略这些核心位,从来没有让任何人成为更好的程序员)

感谢大家。

最佳答案
MinGW是一个完整的GCC工具链(包括六个前端,如C,C,Ada,Go和whatnot),用于编译Windows平台,并链接到msvcrt.dll中的Windows操作系统组件C运行时库。相反,它试图是最小的(因此名称)。

这意味着,除了Cygwin,MinGW不会尝试在Windows之上提供完整的POSIX层,但另一方面它不需要链接到特殊的兼容性库。
因此,它也不会对您编写的程序产生任何GPL许可证的影响(值得注意的例外:分析库,但通常不会分发这些程序,因此无关紧要)。

较新的MinGW-w64具有大约99%的完整的Windows API绑定(不包括ATL等),包括x64支持和实验性ARM实现。您可能偶尔会发现一些异乎寻常的常态,但是99%的人使用99%的时间,它的工作效果非常好。

您也可以使用POSIX中更大的部分,只要在Windows下以某种形式实现。与MinGW不兼容的一个主要的POSIX的东西是fork,只是因为Windows下没有这样的东西(Cygwin经历了很多痛苦才能实现)。
还有一些其他的小事情,但总而言之,大多数事情都是有用的。

所以,在一个非常简单的句子中:MinGW(-w64)是一个“不复杂的编译器”,它允许您为Windows编写本机二进制可执行文件,不仅在C和C,还有其他语言。

转载注明原文:c – 简单的解释什么是MinGW - 代码日志