MinGW 和普通 GCC 的区别?

Posted

技术标签:

【中文标题】MinGW 和普通 GCC 的区别?【英文标题】:Difference between MinGW and the regular GCC? 【发布时间】:2011-09-11 00:51:05 【问题描述】:

在 MinGW 的 SourceForge 页面上,您可以下载 GCC 4.5.2,这是最新版本。在 GNU 镜像上,您可以下载 GCC 4.6 源并使用可能的 Windows 目标之一对其进行编译:

i[3456789]86-w64-mingw*
i[3456789]86-*-mingw*
x86_64-*-mingw*

使用这些目标之一与 MinGW 的传统 GCC 有区别吗?使用常规 GCC 是否有意义,因为它有更多最新版本,还是等到 MinGW 的最新 GCC 发布更有意义?

【问题讨论】:

MinGW 是为了与 Windows 兼容。 MinGW 使用 GCC/G++,MinGW 不是编译器,它基本上是 Cygwin 的剥离版本,尽可能使用 MS 库。 另外,GCC 并没有真正改变。任何版本都可能会。 C 多年来一直没有变化,所以不用担心。 对不起,我指的是与MinGW打包的GCC版本。我会编辑帖子。 @tjameson 你需要区分MinGW和MSYS。根据他们的网站,“MinGW 提供了一套完整的开源编程工具集,适用于开发原生 MS-Windows 应用程序,并且不依赖任何第三方 C-Runtime DLL。”编译器当然是其中最重要的部分。同时,MSYS 是您提到的精简的 Cygwin 分支。它“提供了一个通用的命令行环境,特别适合与 MinGW 一起使用,用于将许多开源应用程序移植到 MS-Windows 平台”。 @tjameson:MinGW 不是 Linux 和 Windows API 之间的转换。 MinGW 提供了编译器和一些必要的工具来生成本地 Windows 可执行文件,即无需第三方运行时库即可运行但使用可用的 Microsoft C 运行时的可执行文件。为此,它为 Windows 系统库提供了头文件和导入库。 ak2 是对的,你说的是 MSYS,它主要用于构建利用 Linux 上“标准”的自动构建系统的软件包。 【参考方案1】:

正如您在 SourceForge 上 GCC 的 MinGW 版本随附的 README 文件中看到的那样,没有使用本地补丁,而且我认为这种情况已经有很长一段时间了,所以假设 GCC 代码库没有变化需要新的本地补丁,您可以很好地从其中一个镜像下载 GCC 源代码并自己构建它们。

过去我自己也这样做过,特别是因为我使用的是 gfortran,它正在大量开发中,所以我不时拍摄最新的快照并自己构建它,这样我就可以使用某些新功能最近才推出。

(我不得不承认,我花了一些时间试图让构建运行没有错误,并且在一段时间没有问题之后,我最近遇到了一些我无法完全解决的新问题。我将不得不尝试很快就会再次。)

【讨论】:

以上是关于MinGW 和普通 GCC 的区别?的主要内容,如果未能解决你的问题,请参考以下文章

cmake:让mingw(gcc)生成MSVC可用的dll(.lib)----mark亲测有效

mingw和cygwin区别

mingw和cygwin的区别

Cygwin 和MinGW 的区别与联系是怎样的

[GCC][转载]windows上GCC区别

mingw和gcc的关系?mingw具有gcc的全部核心编译功能吗