Windows 环境下 git 客户端中的 git-bash 和 MINGW64
我們?cè)?Windows10 操作系統(tǒng)下,安裝了 git 客戶(hù)端之后,可以通過(guò) git-bash.exe 打開(kāi)一個(gè) shell:
執(zhí)行一些 linux 系統(tǒng)里的命令:
注意到上圖紫色的 MINGW64.
Mingw-w64 是原始 mingw.org 項(xiàng)目的改進(jìn)版,旨在支持 Windows 系統(tǒng)上的 GCC 編譯器。 它在 2007 年對(duì)它進(jìn)行了分叉,以提供對(duì) 64 位和新 API 的支持。 從那時(shí)起,它得到了廣泛的使用和分發(fā)。
而所謂 MinGW(“Minimalist GNU for Windows”),原名 mingw32,是一個(gè)免費(fèi)的開(kāi)源軟件開(kāi)發(fā)環(huán)境,用于創(chuàng)建 Microsoft Windows 應(yīng)用程序。 2005 年至 2008 年創(chuàng)建了一個(gè)名為 Mingw-w64 的替代項(xiàng)目,作為 MinGW 項(xiàng)目的一個(gè)發(fā)展分叉。
MinGW 包括 GNU 編譯器集合 (GCC) 的一個(gè)端口、用于 Windows 的 GNU Binutils(匯編器、鏈接器、存檔管理器)、一組可自由分發(fā)的 Windows 特定頭文件和靜態(tài)導(dǎo)入庫(kù),這些庫(kù)支持使用 Windows API、Windows GNU 項(xiàng)目的 GNU 調(diào)試器和其他實(shí)用程序的本機(jī)構(gòu)建。
MinGW 不依賴(lài)第三方 C 運(yùn)行時(shí)動(dòng)態(tài)鏈接庫(kù) (DLL) 文件,并且由于運(yùn)行時(shí)庫(kù)不是使用 GNU 通用公共許可證 (GPL) 分發(fā)的,因此無(wú)需隨生成的程序分發(fā)源代碼, 除非在程序的其他地方使用了 GPL 庫(kù)。
MinGW 既可以在本地 Microsoft Windows 平臺(tái)上運(yùn)行,也可以在 Linux(或其他 Unix)上交叉托管,或者在 Cygwin 上“跨本地”運(yùn)行。盡管在 MinGW 下生成的程序是 32 位可執(zhí)行文件,但它們可以在 32 位和 64 位版本的 Windows 中使用。
同 cygwin 的比較
盡管 Cygwin 和 MinGW 都可用于將 Unix 軟件移植到 Windows,但它們有不同的方法:
-
Cygwin 旨在提供一個(gè)完整的 POSIX 層,包括所有主要 Unix 系統(tǒng)調(diào)用和庫(kù)的完整實(shí)現(xiàn)。兼容性被認(rèn)為比性能更重要。
-
另一方面,MinGW 的優(yōu)先事項(xiàng)是簡(jiǎn)單性和性能。因此,它不提供某些無(wú)法使用 Windows API 輕松實(shí)現(xiàn)的 POSIX API,例如 fork()、mmap() 和 ioctl()。
使用本身已移植到 MinGW 的跨平臺(tái)庫(kù)編寫(xiě)的應(yīng)用程序,例如 SDL、wxWidgets、Qt 或 GTK,在 MinGW 中編譯通常會(huì)像在 Cygwin 中一樣容易。
用 Cygwin 編寫(xiě)的 Windows 程序運(yùn)行在一個(gè) Copyleft 兼容 DLL 之上,該 DLL 必須與程序一起分發(fā),以及程序的源代碼。 MinGW 不需要兼容層,因?yàn)榛?MinGW 的程序是通過(guò)直接調(diào)用 Windows API 編譯的。
MinGW 和 MSYS 的組合提供了一個(gè)小型、自包含的環(huán)境,可以將其加載到可移動(dòng)媒體上,而無(wú)需在注冊(cè)表或計(jì)算機(jī)上的文件中留下條目。
也可以在 POSIX 系統(tǒng)下用 MinGW-GCC 交叉編譯 Windows 應(yīng)用程序。這意味著開(kāi)發(fā)人員不需要安裝帶有 MSYS 的 Windows 來(lái)編譯在帶有或不帶有 Cygwin 的 Windows 上運(yùn)行的軟件。
更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的Windows 环境下 git 客户端中的 git-bash 和 MINGW64的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Slurm基本用法(入门必看)
- 下一篇: 什么是 SAP HCEA