我是一个狂热的Python用户,似乎我需要在我的Windows机上安装MinGW来编译一些库。我对MinGW和GCC有点疑惑。这是我的问题(从一个真实的虚拟观点来看):
所以Python是一种解释和编译的语言。有Linux和Windows的Python实现,人们只需安装并使用二进制文件来执行他的代码。它们捆绑了一堆您可以使用的内置库。据我所知,Ruby也是如此。
现在,我已经做了一点C,我知道有一个要编译它。它有自己的内置库,这些库看起来就是你可以使用的头文件。现在,回到学生时代,C在一个名为Turbo-C的类似vi的集成开发环境中编写代码,然后按F9进行编译。这就是我的C语言教育结束的地方。
什么是MinGW,什么是GCC?我一直主要在Windows系统上工作,最近甚至开始使用Cygwin。它们不是一样的吗?
一个简单的解释会对这些区域有所帮助。
(如果这篇文章听起来很傻,我很抱歉。我想我应该在这里问一下。忽略这些核心位不会让任何人成为更好的程序员。)
谢谢大家。
发布于 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++,也可以是其他语言。
发布于 2011-10-17 18:04:37
要编译C程序,您需要针对特定计算机的C实现。
C实现基本上由一个编译器(它的预处理器和头文件)和一个库(现成的可执行代码)组成。
在安装了Windows的计算机上,包含大多数现成可执行代码的库与gcc编译器不兼容...因此,要在Windows中使用这个编译器,您需要一个不同的库:这就是MinGW进入的地方。MinGW提供了与gcc一起实现C语言所需的库。
Windows库和MSVC一起构成了不同的实现。
发布于 2011-10-17 14:55:04
MinGW是一套包含GCC (以及其他工具)的开发工具,而GCC是该套件中的一名C编译器。
https://stackoverflow.com/questions/7790262
复制相似问题