Cygwin MinGW 包与独立 MinGW 的比较

5
我希望在Windows中拥有一个POSIX环境(用作系统shell),同时生成本机的Windows可执行文件。过去的一个选择是安装Cygwin和MinGW,可能从Cygwin调用MinGW编译器二进制文件。
现在,一个x64 MinGW可以直接作为Cygwin包使用,并且有一些博客blogs记录了如何使它们良好地协同工作。
在采用此解决方案之前,我想知道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软件包相关的内容,很可能会落入一般版本,这就是我在这里发布的原因。


1
密切相关,可能是重复的:Cygwin和MinGW有什么区别? - legends2k
使用MSYS2进行shell仿真,并使用MinGW生成本地Windows可执行文件;使用Cygwin将会产生一个依赖于cygwin1.dll的可执行文件,该文件在Windows上模拟了很多POSIX行为。 - legends2k
1个回答

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-coremingw64-i686-gcc-core文件中的x86_64-w64-mingw32-gcc.exei686-w64-mingw32-gcc.exe。这些编译器创建的Windows本地程序不依赖于cygwin1.dll

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接