首页 > 软件下载
【Mingw-w64】MinGW下载安装与使用教程(C/C++ 编译器,附安装包)
如果着急下载的话,可以在这里下载:MinGW 安装包(源自 MinGW 官网,放心可用)
如果你要编写 C/C++ 程序,需要编译 .cpp 源文件,却发现安装Visual Studio 要好几个 GB,Windows 环境下又无法运行运行 GCC。
对初学者来说,在 Windows 上找到一款免费、轻量又好用的 C/C++ 编译器,一直是件头疼事。本文将从下载安装开始,一步步带你上手 MinGW 的基本使用,帮你快速迈过编译器的门槛。
MinGW 是一款免费开源的 Windows 编译环境,它将 Linux 平台广泛使用的 GCC(GNU 编译器套件)移植到 Windows。你可以直接使用 gcc、g++ 命令,把源代码编译为 Windows 原生可执行程序,无需安装体积庞大的 IDE,仅靠一条命令就能完成编译工作。
相比市面上同类型的编译工具 (MSVC、Clang、Cygwin、TDM-GCC 等),MinGW 的优势在于:
- 完全免费开源:GCC 采用 GPL 等开源协议,不需要购买授权,也没有任何功能限制,而 MSVC 的部分高级组件需要 Visual Studio 订阅;
- 轻量且命令行友好:解压即用,占用空间只有几百 MB,不需要安装 Visual Studio 那样动辄 10 GB 的开发环境,特别适合轻量开发和服务器环境;
- 与 Linux 生态无缝衔接:MinGW 使用的就是 GCC 编译器,代码在 Linux 上怎么编译,在 Windows 上就是怎么编译,方便同一份代码在多平台间迁移,而 Cygwin 编译出的程序依赖模拟层的 dll,性能和分发都不如 MinGW 的原生程序。
MinGW 下载
为了方便下载安装,本文附带了不同系统和版本的安装包,可以按需要下载使用:MinGW 16.2.0 发布版官网安装包下载:https://pan.quark.cn/s/2adb30800ec2
| 文件名 | 适用系统 | 说明 |
|---|---|---|
| x86_64-16.2.0-release-posix-seh-ucrt-rt_v14-rev1.7z | 64 位 | 绝大多数电脑选择这个,POSIX 线程 + UCRT 运行时。推荐 |
| x86_64-16.2.0-release-posix-seh-msvcrt-rt_v14-rev1.7z | 64 位 | POSIX 线程 + MSVCRT 运行时,兼容 Windows 7 等老系统。 |
| x86_64-16.2.0-release-win32-seh-ucrt-rt_v14-rev1.7z | 64 位 | Win32 线程 + UCRT 运行时,不需要 C++11 标准线程特性时可选。 |
| x86_64-16.2.0-release-win32-seh-msvcrt-rt_v14-rev1.7z | 64 位 | Win32 线程 + MSVCRT 运行时,兼容老系统的最小配置。 |
| x86_64-16.2.0-release-mcf-seh-ucrt-rt_v14-rev1.7z | 64 位 | MCF 线程 + UCRT 运行时,MCF 是 MinGW-w64 新一代线程模型。新型 |
| i686-16.2.0-release-posix-dwarf-ucrt-rt_v14-rev1.7z | 32 位 | POSIX 线程 + UCRT 运行时,适用于较旧的 32 位设备。 |
| i686-16.2.0-release-posix-dwarf-msvcrt-rt_v14-rev1.7z | 32 位 | POSIX 线程 + MSVCRT 运行时。 |
| i686-16.2.0-release-win32-dwarf-ucrt-rt_v14-rev1.7z | 32 位 | Win32 线程 + UCRT 运行时。 |
| i686-16.2.0-release-win32-dwarf-msvcrt-rt_v14-rev1.7z | 32 位 | Win32 线程 + MSVCRT 运行时。 |
| i686-16.2.0-release-mcf-dwarf-ucrt-rt_v14-rev1.7z | 32 位 | MCF 线程 + UCRT 运行时。 |
MinGW 安装
本文以 Windows 64 位系统为例,以下安装步骤基于“x86_64-16.2.0-release-posix-seh-ucrt-rt_v14-rev1.7z”。注意 MinGW 的安装路径不可以有中文和空格,不然会导致 MinGW 工具报错。1) 这里我直接把压缩包移动到 D 盘(也可以是其它非系统盘),并且把文件夹的名字改成“MinGW.7z”(改名字是为了后续操作方便),解压“MinGW.7z”(每个人的设备不同,所以等待时间因设备而异):

2) 双击“MinGW”:

3) 双击“mingw64”:

4) 双击“bin”:

5) 复制当前的路径:

7) 接下来配置环境变量。按 Win 键,可以直接搜索“环境变量”,点击“编辑系统环境变量”:

8) 在弹出的窗口中点击“环境变量”:

9) 在下方“系统变量”列表中找到 "Path",双击编辑:

9) 点击“新建”,输入 MinGW 的 bin 路径(例如
D:\MinGW\mingw64\bin),依次点击“确定”保存:
10) MinGW 是命令行工具,没有图形界面。按 Win + R,输入 cmd,回车打开:

输入命令:
gcc --version11) 看到下图所示的版本号输出,代表安装成功:

MinGW 使用
下面用一个简单的 C++ 项目演示 MinGW 的基本用法。1) 准备项目文件:
新建一个项目文件夹(我使用“project”作为演示),创建一个“main.cpp”:

在“main.cpp”中写入下面这段代码:
#includeint main() { std::cout << "Hello, MinGW!" << std::endl; return 0; }
2) 输入 cmd,回车:

3) 编译项目:
g++ main.cpp -o hello.exe这里说明一下这一行命令的意义:
- g++:MinGW 中的 C++ 编译器命令,编译 C 语言代码使用 gcc 命令。
-
main.cpp:要编译的源文件,多个源文件可以用空格分隔,比如
g++ main.cpp utils.cpp -o app.exe。 - -o hello.exe:指定输出的可执行文件名,省略时会默认生成 a.exe。这一步会调用编译器完成预处理、编译、汇编、链接,最终生成原生的 Windows 可执行文件。

4) 编译成功后,可执行文件“hello.exe”就在当前目录:

5) cmd 运行:
.\hello.exe看到输出 Hello, MinGW! 就说明整个流程跑通了:

常见问题与解决方案
1) 运行 gcc 命令提示找不到
-
确认环境变量是否配置正确,Path 中需要包含 MinGW 的 bin 目录(例如
D:\MinGW\mingw64\bin),注意是 bin 目录而不是 mingw64 根目录。 - 配置环境变量后需要重新打开命令行窗口才会生效,可以把旧窗口关掉再试一次。
2) 编译报错找不到头文件
-
检查源代码中
#include的头文件是否拼写正确,标准库头文件(如 iostream、stdio.h)MinGW 都自带。 -
如果是第三方库的头文件,需要使用
-I参数指定头文件所在目录,例如g++ main.cpp -I "D:\libs\include" -o hello.exe。 - 注意路径要写对,如果路径中包含空格,需要用引号包起来。
3) 编译中文程序运行时乱码
- Windows 命令行默认使用 GBK 编码,而源文件通常保存为 UTF-8。
-
可以在编译时加参数
g++ main.cpp -fexec-charset=GBK -o hello.exe,或者在运行前执行chcp 65001把命令行切换为 UTF-8 编码。
4) 运行 exe 提示缺少 libstdc++-6.dll 等动态库
- 程序默认动态链接 GCC 的运行时库,把 exe 拷到别的电脑上运行时可能缺少 dll。
-
可以在编译时加
-static参数静态链接:g++ main.cpp -static -o hello.exe,这样生成的 exe 可以独立运行,不依赖 MinGW 环境。
ICP备案:
公安联网备案: