咱们在 Windows10 操作系统下,装置了 git 客户端之后,能够通过 git-bash.exe 关上一个 shell:
执行一些 linux 零碎里的命令:
留神到上图紫色的 MINGW64.
Mingw-w64 是原始 mingw.org 我的项目的改进版,旨在反对 Windows 零碎上的 GCC 编译器。它在 2007 年对它进行了分叉,以提供对 64 位和新 API 的反对。从那时起,它失去了宽泛的应用和散发。
而所谓 MinGW(“Minimalist GNU for Windows”),原名 mingw32,是一个收费的开源软件开发环境,用于创立 Microsoft Windows 应用程序。2005 年至 2008 年创立了一个名为 Mingw-w64 的代替我的项目,作为 MinGW 我的项目的一个倒退分叉。
MinGW 包含 GNU 编译器汇合 (GCC) 的一个端口、用于 Windows 的 GNU Binutils(汇编器、链接器、存档管理器)、一组可自在散发的 Windows 特定头文件和动态导入库,这些库反对应用 Windows API、Windows GNU 我的项目的 GNU 调试器和其余实用程序的本机构建。
MinGW 不依赖第三方 C 运行时动态链接库 (DLL) 文件,并且因为运行时库不是应用 GNU 通用公共许可证 (GPL) 散发的,因而无需随生成的程序散发源代码, 除非在程序的其余中央应用了 GPL 库。
MinGW 既能够在本地 Microsoft Windows 平台上运行,也能够在 Linux(或其余 Unix)上穿插托管,或者在 Cygwin 上“跨本地”运行。只管在 MinGW 下生成的程序是 32 位可执行文件,但它们能够在 32 位和 64 位版本的 Windows 中应用。
同 cygwin 的比拟
只管 Cygwin 和 MinGW 都可用于将 Unix 软件移植到 Windows,但它们有不同的办法:
- Cygwin 旨在提供一个残缺的 POSIX 层,包含所有次要 Unix 零碎调用和库的残缺实现。兼容性被认为比性能更重要。
- 另一方面,MinGW 的优先事项是简略性和性能。因而,它不提供某些无奈应用 Windows API 轻松实现的 POSIX API,例如 fork()、mmap() 和 ioctl()。
应用自身已移植到 MinGW 的跨平台库编写的应用程序,例如 SDL、wxWidgets、Qt 或 GTK,在 MinGW 中编译通常会像在 Cygwin 中一样容易。
用 Cygwin 编写的 Windows 程序运行在一个 Copyleft 兼容 DLL 之上,该 DLL 必须与程序一起散发,以及程序的源代码。MinGW 不须要兼容层,因为基于 MinGW 的程序是通过间接调用 Windows API 编译的。
MinGW 和 MSYS 的组合提供了一个小型、自蕴含的环境,能够将其加载到可挪动媒体上,而无需在注册表或计算机上的文件中留下条目。
也能够在 POSIX 零碎下用 MinGW-GCC 穿插编译 Windows 应用程序。这意味着开发人员不须要装置带有 MSYS 的 Windows 来编译在带有或不带有 Cygwin 的 Windows 上运行的软件。
更多 Jerry 的原创文章,尽在:” 汪子熙 ”: