admin 管理员组

文章数量: 887019

MinGW

MinGW,全称“Minimalist GNU for Windows”,是一个提供在Windows操作系统上运行的GNU工具集的软件环境。它允许开发者使用GCC(GNU Compiler Collection)编译器来编译C和C++程序,以及其他GNU工具,如GDB调试器和GNU Make。

MinGW的主要特点包括:

  1. 兼容性:它提供了一个与GCC兼容的环境,使得在Linux下开发的代码可以相对容易地移植到Windows平台。

  2. 开源:MinGW是开源的,遵循GNU通用公共许可证。

  3. 跨平台开发:它允许开发者在Windows上编写跨平台代码,这些代码可以在多种操作系统上运行。

  4. 轻量级:MinGW的环境相对轻量,不需要安装完整的Cygwin环境,后者提供了一个更完整的类Unix环境。

  5. 易于安装和使用:MinGW的安装和配置相对简单,适合快速开始开发。

MinGW、 MinGW-w64 区别

MinGW和MinGW-w64都是为Windows平台提供GNU工具链的软件环境,但它们之间有一些关键的区别:

  1. MinGW

    • MinGW代表“Minimalist GNU for Windows”,它提供了一个32位的GNU工具链,包括GCC编译器。
    • 它支持32位应用程序的开发,但不支持64位应用程序。
    • MinGW通常用于开发小型的、不需要64位特性的应用程序。
  2. MinGW-w64

    • MinGW-w64是MinGW的扩展,它不仅支持32位应用程序,还支持64位应用程序的开发。
    • 它提供了对64位Windows API的支持,允许开发者编写可以在64位Windows系统上运行的应用程序。
    • MinGW-w64的GCC编译器可以生成32位和64位的可执行文件,这取决于你如何配置编译器。
    • 它通常用于开发需要利用64位系统优势的现代应用程序,例如处理大量数据或需要高性能的应用程序。

选择MinGW还是MinGW-w64

  • 如果你只需要开发32位的应用程序,MinGW可能就足够了。
  • 如果你需要开发64位应用程序,或者你的应用程序需要使用64位系统的特性(如更大的内存寻址空间),那么MinGW-w64是更好的选择。

MinGW-w64安装过程

  1. 下载网址:https://www.mingw-w64/
  2. 点击Sources页面,选择SourceForge。
  3. 点击SourceForge,跳转到如下网址界面,可以选择下载最近的版本,或者点击下面的在线安装。



4. 点击下载下来的exe文件,进行安装:但是一直提示cannot download repository.txt,挂梯子和已管理员身份运行都没用😂。



5. 没辙了,下载离线包吧,解压,放到合适的位置。

  • 说明:x86_64-posix-seh 是一个特定于 Windows 平台的 GNU 编译器集合(GCC)目标三元组,它指定了编译器应该生成适用于 Windows 64 位(x86_64)系统上的程序,并且使用 SEH(Structured Exception Handling)作为异常处理机制。

    1. x86_64:这是处理器架构的名称,表示 64 位的 x86 架构,也称为 AMD64 或 Intel 64。

    2. posix:这表示程序应该遵循 POSIX(Portable Operating System Interface)标准,这是一个为 Unix 和 Unix-like 系统定义的 API 标准。在 Windows 上,这意味着程序应该使用 POSIX 兼容的系统调用和库。

    3. seh:这表示程序应该使用 SEH,这是 Windows 特有的异常处理机制。SEH 允许程序捕获和处理硬件异常,如访问违规、整数溢出等。

  1. 上个步骤中直接从SourceForge网上向下翻已经不提供下载离线安装包了,可以从官网对应 GitHub 上下载对应的离线包。【2024.9.26 更新】

  • msvcrt和ucrt的区别: 在MinGW-w64环境中,MSVCRT和UCRT是两种不同的C运行时库:

    1. MSVCRT (Microsoft Visual C++ Runtime):这是传统的C运行时库,它在所有版本的Windows上都可用。但由于向后兼容性问题,MSVCRT并不完全兼容C99标准,缺少一些特性,例如对UTF-8
      locale的支持。MSVCRT是MinGW-w64的默认运行时库,它允许程序在所有Windows版本上运行,但可能不会利用最新的C语言特性和性能改进。

    2. UCRT (Universal C Runtime):这是微软提供的更新版本的C运行时库,它首次包含在Windows 10中,并且可以通过更新的方式安装在早期的Windows版本上。UCRT旨在提供更好的标准化支持,包括对C99和C11标准的支持。它也提供了更好的与MSVC编译器的兼容性,无论是在编译时还是在运行时。UCRT作为Windows组件,可以通过Windows Update自动接收更新,这意味着用户无需单独安装或更新UCRT。

  • 对于开发者来说,如果目标是Windows 10或更高版本的系统,并且希望程序能够利用最新的C语言特性,那么UCRT是更好的选择。如果需要确保程序能够在旧版的Windows系统上运行,那么可能需要考虑使用MSVCRT。

  1. 解压下载好的离线包,将其放到合适位置,将其拷贝到C盘。


  2. 配置环境变量:在系统环境变量中,path目录里新建一行,将mingw64里bin目录拷贝进去。
  3. 可以发现系统环境变量中,存在里mingw(即32位的)以及安装Anaconda3的时候已经安装了mingw-w64了😂


11. 验证:PowerShell直接输入gcc -v,可以看到默认应用的是32位的mingw,删除32位的吧,用的也很少。

  1. 删除32位mingw,把环境变量中对应路径也删除,然后PowerShell再输入gcc -v,提示的就是64位的mingw了。
  2. 安装完成✅,可以利用mingw编译各种开源项目了,比如x264、FFmpeg等。

本文标签: 教程 Windows mingw