当前位置: 首页 > news >正文

Windows环境下git客户端中的git-bash和MinGW64

我们在 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 上运行的软件。

 

http://www.lryc.cn/news/96160.html

相关文章:

  • 欧姆龙CX系列PLC串口转以太网欧姆龙cp1hplc以太网连接电脑
  • Vue3笔记
  • git相关
  • 车道线检测|利用边缘检测的原理对车道线图片进行识别
  • C++—static关键字详解
  • CS144学习笔记(1):Internet and IP
  • 2 Linux基础篇-Linux入门
  • 分享200+个关于AI的网站
  • 静态 链接
  • 【C#性能】C# 语言中的数组迭代
  • 全志F1C200S嵌入式驱动开发(解决spi加载过慢的问题)
  • 信息系统项目管理师(第四版)教材精读思维导图-第三章信息系统治理
  • 区间预测 | MATLAB实现基于QRF随机森林分位数回归多变量时间序列区间预测模型
  • 五步快速搭建个性化外卖小程序商城
  • jenkins中配置了发送邮件,构建后却没有发邮件Not sent to the following valid addresse
  • 装箱问题(背包问题)
  • 【C++】总结4-this指针
  • go压力测试
  • 【计算机网络】socket编程基础
  • 学C的第三十天【自定义类型:结构体、枚举、联合】
  • Ubuntu(20.04):通过noVNC实现网页访问vnc
  • OpenAI的Function calling 和 LangChain的Search Agent
  • 【mysql数据库】MySQL7在Centos7的环境安装
  • 基于vue+element 分页的封装
  • 面试题模拟
  • Linux6.13 Docker LNMP项目搭建
  • 数据包协议栈处理
  • html刷新图片
  • PHP反序列化漏洞之魔术方法
  • 2023年的深度学习入门指南(20) - LLaMA 2模型解析