MSYS2、MinGW64
2026/9/19 22:48:15 网站建设 项目流程

1.MinGW64

MinGW-w64简单说就是Windows 上的“C/C++ 编译工具包”,让你能在 Windows 下编译出不需要额外装巨量运行库就能跑的.exe程序。

它是开源世界的标配工具,核心要点就 3 个:

  • 出身:它是经典 MinGW 的升级版,主要贡献是为了支持64 位系统(原版只擅长 32 位)。

  • 核心武器:内置了GCC(编译器)、GDB(调试器)和Binutils(链接器等)。它调用的不是微软的 MSVC,而是 Linux 同款的 GNU 工具链。

  • 关键特性:使用Windows 原生 API,编译出的程序依赖msvcrt.dllucrtbase.dll(系统自带),所以分发给用户时不用带一堆巨大的 DLL

实际使用中,你主要会见到这几种“形态”:

  • MSYS2(最推荐):在 Windows 上模拟 Linux 风格的包管理和终端,用它装 MinGW 最方便,还能用pacman一键装依赖。

2.64位操作系统

64位操作系统,简单说就是一次能处理64位(8个字节)数据的系统,相当于电脑的“大脑”用更宽的车道运货。对比32位,它有3个你能直接感受到的飞跃:

  • 内存支持巨大:32位最多认4GB内存(实际可用约3.2GB),而64位理论支持TB(太字节)甚至PB(拍字节)级内存。你现在电脑能插8G、16G内存正常用,全靠它。

  • 运算速度更快:64位CPU内部寄存器更宽,处理长数字(如视频渲染、加密、大数据)时,单次操作能处理更多数据,效率直接翻倍。

  • 安全性更强:硬件级支持DEP(数据执行保护)和内核补丁保护,对病毒和恶意代码的防御能力比32位高一个级别。

实际使用中的“坑”与匹配:

  • 系统要匹配:64位CPU(现在几乎全是)必须装64位系统才能发挥全部性能。如果你装32位系统,哪怕内存16G,也只能用4G,白白浪费。

  • 软件要区分:64位系统能同时运行64位和32位软件(32位软件会装在Program Files (x86)文件夹);但32位系统绝对装不了64位软件。

  • 驱动不通用:硬件驱动必须严格匹配系统位数,64位系统装32位驱动会直接蓝屏。

3.msys2

MSYS2Windows 上的“Linux 风格命令行环境”,你可以把它理解为给 Windows 穿的“Linux 马甲”。它让你在 Windows 下能直接用apt-get式的命令(pacman)装软件,并跑那些原本只为 Linux 写的脚本。

它的核心构成就 3 层:

  • 包管理(核心亮点):内置pacman(和 Arch Linux 同款)。你想装 GCC、Python、Git?一条pacman -S gcc全自动搞定,再也不用去网上找 exe 安装包。

  • 终端模拟:提供Mintty终端,支持lsgrepssh等经典 Linux 命令,操作手感完全脱离 CMD 的束缚。

  • 软件仓库:官方维护了大量预编译好的开源软件,省去你在 Windows 上源码编译的噩梦。

它和 MinGW-w64 是什么关系(重点)?

  • MinGW-w64编译器(工具链),负责把代码变成 .exe。

  • MSYS2环境(舞台),它里面包含了 MinGW-w64。

  • 通俗说:MSYS2 是“菜市场”(包管理器),MinGW-w64 是“厨具”(编译器)。你去 MSYS2 里用 pacman 命令,就能把 MinGW-w64 这套厨具买回来装上。

MSYS2 本质上就是在 Windows 上实现了一个“Bash Shell 环境”。安装 MSYS2 后,你打开的那个 Mintty 终端窗口,里面跑的就是Bash Shell。正是这个 Shell,让你能在 Windows 下敲lsgreppacman -S gcc这些“类 Linux”命令。

不同系统的 Shell 家族(重点区分)

  • Unix/Linux 世界(含 macOS):

    • Bash(最主流):绝大多数 Linux 发行版的默认 Shell。

    • Zsh:功能更强,现在 macOS 默认用它。

    • Sh:最老的原始版本。

4.ucrt64

UCRT64是 MSYS2 提供的一种编译环境。你可以把它理解为 MSYS2 里一个专门配置好的“工作台”,它使用GCC 编译器,生成64位的 Windows 程序,并且这些程序会链接到微软较新的UCRT(Universal C Runtime,通用C运行时库)

为了让你更清晰地理解它,我们把它和之前可能见过的MINGW64环境放在一起对比。它们最大的区别就在于链接的C 运行时库(C Runtime Library,简称 CRT)不同

UCRT64 的优势与适用场景

从上表能看出,UCRT64 之所以成为官方推荐,是因为它解决了 MINGW64 的一些核心痛点:

  1. 拥抱现代标准:UCRT 是微软为 Visual Studio 提供的现代运行时,这让 UCRT64 环境下的 GCC 编译出的程序能更好地兼容 C/C++ 新标准,行为也更符合预期。

  2. 告别乱码烦恼:对 UTF-8 的良好支持,意味着编译或操作包含中文路径、中文内容的文件时,遇到编码问题的概率大大降低。

  3. 与 MSVC 世界接轨:如果你需要链接由 Visual Studio 编译的第三方库,使用 UCRT64 环境会更顺畅,不容易遇到底层数据结构的兼容问题

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询