MinGW的简单解释

Mri*_*lla 39 c windows gcc cygwin mingw

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

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

现在,我已经完成了C的一小部分,我知道有人可以编译它.它有自己的内置库,可以使用它们称为头文件.现在,回到学校的那天,C,正在一个名为Turbo-C的vi类IDE中编写代码,然后按F9编译它.这几乎是我的C教育结束的地方.

什么是MinGW,什么是GCC?我一直主要研究Windows系统,甚至最近开始使用Cygwin.他们不一样吗?

对这些区域进行简单解释会有所帮助.

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

感谢大家.

Dam*_*mon 26

MinGW是Windows平台的完整GCC工具链(包括六个前端,如C,C++,Ada,Go和诸如此类),它们编译并链接到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++,还有其他语言.

  • 编程语言的“前端”到底是什么? (2认同)

pmg*_*pmg 12

要编译C程序,您需要为特定计算机实现C实现.

C实现基本上由编译器(其预处理器和头部)和库(现成的可执行代码)组成.

在安装了Windows的计算机,包含最现成的可执行代码库是不兼容gcc的编译器...所以使用这个编译器在Windows,你需要一个不同的库:这就是MinGW进入.MinGW除其他外,还提供了与C一起实现C实现所需的库gcc.


Windows库和MSVC一起实现了不同的实现.

  • 很好的简单解释。 (3认同)