在windows上安装MinGW-w64

MinGW(全称为,Minimalist GNU for Windows),它实际上是将经典的开源 C语言编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 平台不具备的,但是Linux平台具备的开发工具和API函数。用一句话来概括就是:MinGW 就是 GCC 的 Windows 版本[1]

MinGW-w64安装

有两种方式安装MinGW-w64,第一种是下载压缩包安装;第二种是使用MinGW-w64下载器安装。下面以浏览器下载安装为例,介绍其安装流程及压缩包命名规则。

下载压缩包安装

  1. 下载压缩包:在这里下载MinGW-w64,文件命名方式如下,根据自己系统及需要下载对应版本,本此安装系统为windows10(64bit),选择了[x86_64-posix-sjlj](https://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win64/Personal Builds/mingw-builds/8.1.0/threads-posix/sjlj/x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0.7z)
  2. **解压压缩包:**将路径mingw64/bin配置到系统环境变量PATH中;mingw64/lib配置到环境变量LIB中;mingw64/bin配置到环境变量INCLUDE中
  3. **测试安装:**打开windows终端cmd,输入gcc -v,无误后安装成功

文件命名方式解释 [1:1]

  • version: GCC编译器版本
  • architecture: 电脑系统类型,i686指32位系统;x86_64指64位系统
  • threads: 线程类型,posix指可移植的操作系统接口,UNIX系统支持该标准;win32指windows下的一个标准
  • exception: 异常处理类型,32位系统有2种:dwarf和sjlj;64位系统同样2种:seh 和 sjlj。3种类型的区别为[2]
    • sjlj:可用于32位和64位 – 不是“零成本”:即使不抛出exception,也会造成较小的性能损失(在exception大的代码中约为15%) – 允许exception遍历例如窗口callback
    • seh:结构化异常处理,利用FS段寄存器,将原点压入栈,遇到异常弹出,seh 是新发明的,而 sjlj 则是古老的,seh 性能比较好,但不支持 32位。 sjlj 稳定性好,支持 32位
    • dwarf:只有32位可用 – 没有永久的运行时间开销 – 需要整个调用堆栈被启用,这意味着exception不能被抛出,例如Windows系统DLL。
  • build revision: 建立修订

参考资料:


  1. Windows系统下安装配置 MinGW-w64 开发环境_yunfan-CSDN博客 ↩︎ ↩︎

  2. MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本 ↩︎