Cygwin MinGW 软件包与独立 MinGW

ant*_*nio 6 cygwin posix mingw mingw-w64

我希望在 Windows 中有一个 POSIX 环境(用作系统 shell),同时生成本机 Windows 可执行文件。过去的一种选择是安装 Cygwin 和 MinGW,并可能从 Cygwin 调用 MinGW 编译器二进制文件。

现在 x64 MinGW 可以直接作为 Cygwin 包使用,并且有一些博客记录了如何让它们很好地协同工作。

在采用此解决方案之前,我想知道 Cygwin 软件包与独立的 MinGW-w64 有何不同以及是否不同。具体来说,哪一个在生成本机 Win64 exe 方面更有效?Cygwin 包本身是基于本机可执行文件,还是其 gcc 编译器的扩展?

更新

有些人误解了这个问题:

我对 Cygwin 和 MinGW 之间的区别根本不感兴趣。

(顺便说一句,在MinGW的主页上, 他们主要关心的是展示他们与 Cygwin 的区别)

相反,我的问题非常具体:我对特定Cygwin 包与其独立版本之间的区别感兴趣。
这个包恰好是“mingw64-x86_64”,它被分成几个依赖文件,其中最相关的可能是“mingw64-x86_64-gcc-core”。

抱歉,但在某些评论中找到的参考文献与此处提出的问题完全错误:首先,它们针对的是 Cygwin 作为一个整体,而不是提到的包;其次,它们指的是一个相当旧的 MinGW 版本,与此处提到的版本显着不同(请参阅此处了解差异
有人还提到了 MSYS2,它是一个现代的 Cygwin 分支,但我对 Cygwin(整体)不感兴趣,而是对所述包感兴趣。

你们中的一些人可能不知道这个软件包,事实上,如果您搜索“mingw64-x86_64”,您不会找到与 Cygwin 软件包相关的任何内容,并且很可能会找到通用版本,这就是为什么我在这里发帖。

小智 3

TL;DR:安装 Cygwin 和软件包mingw64-x86_64-gcc-core


如果 Cygwin 软件包与独立的 MinGW-w64 不同

他们是一样的。


  1. MinGW - 该项目可以在 mingw.org 和
    sourceforge.net/projects/mingw 上找到。该项目已被 MSYS2 和 MinGW-w64 项目取代。

  2. Cygwin环境——类Unix环境,即Bash。

  3. Cygwin 编译器 - 这些是软件包gcc-corecygwin32-gcc-core 其中包括文件x86_64-pc-cygwin-gcc.exei686-pc-cygwin-gcc.exe. 这些编译器创建依赖于 cygwin1.dll.

  4. MSYS2环境——类Unix环境,即Bash。这是对旧 MinGW 项目提供的 MSYS 环境的更新。

  5. MinGW-w64 编译器 - 这些是软件包mingw64-x86_64-gcc-core
    mingw64-i686-gcc-core其中包括文件x86_64-w64-mingw32-gcc.exe
    i686-w64-mingw32-gcc.exe. 这些编译器创建不依赖于cygwin1.dll.

Cygwin 上的 C 编译器生成什么?