在 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 下载器安装。下面以浏览器下载安装为例,介绍其安装流程及压缩包命名规则。
下载压缩包安装
- 下载压缩包:在这里下载 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)
- ** 解压压缩包:** 将路径
mingw64/bin
配置到系统环境变量PATH
中;mingw64/lib
配置到环境变量 LIB 中;mingw64/bin
配置到环境变量 INCLUDE 中 - ** 测试安装:** 打开 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: 建立修订
参考资料: