我希望在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版本,与此处提到的版本有很大不同(请参阅此处differences)。 有人还提到了MSYS2,这是一个现代的Cygwin分叉,但我再次对Cygwin(整体而言)不感兴趣,但是对于所说的包。
有些人可能不知道这个软件包,事实上,如果你谷歌搜索“mingw64-x86_64”,你找不到任何与Cygwin软件包相关的东西,并且很可能是普通版本的,并且这就是我在这里发帖的原因。
答案 0 :(得分:2)
TL; DR:安装Cygwin和包mingw64-x86_64-gcc-core
。
如果Cygwin包与独立的MinGW-w64不同
他们是一样的。
MinGW - 这是可以在mingw.org和
找到的项目
sourceforge.net/projects/mingw。该项目已被MSYS2取代
和MinGW-w64项目。
Cygwin环境 - 类似Unix的环境,即Bash。
Cygwin编译器 - 这些是包gcc-core
和cygwin32-gcc-core
其中包括文件x86_64-pc-cygwin-gcc.exe
和
i686-pc-cygwin-gcc.exe
。这些编译器创建了依赖的程序
cygwin1.dll
。
MSYS2 environment - 类似Unix的环境,即Bash。这是个 更新到旧MinGW项目提供的MSYS环境。
MinGW-w64编译器 - 这些是包mingw64-x86_64-gcc-core
和
mingw64-i686-gcc-core
包含文件x86_64-w64-mingw32-gcc.exe
和
i686-w64-mingw32-gcc.exe
。这些编译器创建Windows本机
不依赖cygwin1.dll
。