MinGW 和 MSVC的关系、MinGW安装

张开发
2026/6/9 7:45:45 15 分钟阅读
MinGW 和 MSVC的关系、MinGW安装
简单来说MinGW 是“外来户”Linux 风格的移植而 MSVC 是“原住民”微软亲儿子。为了让你一目了然我整理了一个核心对比表随后会详细解释这些区别对你的影响。⚔️ 核心对比MinGW vs MSVC维度MinGW (Minimalist GNU for Windows)MSVC (Microsoft Visual C)出身背景GCC 编译器的 Windows 移植版 (开源)微软官方开发的编译器 ( proprietary)核心定位跨平台兼容模拟 Linux 开发体验深度集成 Windows性能与工具最强开发工具通常配合 VS Code, Code::Blocks, Vim深度绑定 Visual Studio (IDE)C 标准支持紧跟 GCC对新标准支持极快早期较慢现在已完全支持 C20/23调试器GDB (命令行为主虽强大但界面简陋)Visual Studio 调试器 (图形化业界最强)程序依赖可轻松静态链接生成单文件 exe默认动态链接需安装 VC 运行库性能优化通用优化好但在 Windows API 调用上略逊针对 Windows 系统和 Intel 芯片深度优化 详细解读这些区别对你意味着什么1. “跨平台” vs “Windows 原生”**MinGW **它使用的是 GNU 的工具链GCC。这意味着你在 Linux 上学到的编译命令g、Makefile 写法在 Windows 的 MinGW 下几乎通用。如果你以后要把代码移植到 Linux 服务器上跑用 MinGW 写的代码兼容性最好改动的地方最少。MSVC它是 Windows 的“亲儿子”。如果你要开发专门给 Windows 用的软件比如调用 DirectX 做游戏或者调用复杂的 Windows APIMSVC 是首选因为它对这些底层特性的支持是最原生的。2. “单文件” vs “运行库依赖”MinGW有一个巨大的优势就是方便分发。你在编译时加上-static参数就可以把编译器自带的库打包进你的.exe里。这样你把 exe 发给朋友他电脑上什么都不用装就能直接运行。MSVC默认生成的 exe 比较小因为它依赖系统的 DLL 文件msvcp140.dll等。如果你把 exe 发给没有安装 Visual Studio 的人他们运行时会报错“找不到 xxx.dll”。你需要额外安装“VC Redistributable”运行库才能解决。3. “GDB” vs “Visual Studio 调试器”MinGW GDB在 VS Code 里用的就是 GDB。它功能强大但对于新手来说看变量、看内存可能不如图形化界面直观。MSVC Visual Studio这是 MSVC 最大的护城河。Visual Studio 的调试器被公认为业界最强它的图形化界面能让你极其轻松地查看复杂的内存结构、多线程状态等。4. 二进制不兼容重要这是新手最容易踩的坑MinGW 和 MSVC 生成的代码是不兼容的。如果你用 MinGW 编译你的主程序你不能直接链接用 MSVC 编译出来的库.lib或.dll。这就是为什么你在下载第三方 C 库时通常会看到两个版本一个是win64_mingw一个是win64_msvc。你必须下载和你编译器匹配的版本。 你的选择MinGW 够用吗绝对够用甚至对初学者更好。学习阶段MinGW 让你更接近 C 的本质且命令与 Linux 通用利于你理解编译原理。轻量级配合 VS Code启动快不占内存。跨平台如果你未来想搞 Linux 服务器开发或嵌入式MinGW 的经验可以直接迁移。什么时候该转 MSVC当你需要开发大型商业 Windows 软件如 Photoshop 插件、Windows 桌面应用。当你需要使用某些只提供了 MSVC 版本的闭源商业库时。当你觉得 GDB 调试太痛苦想要 Visual Studio 那种顶级的图形化调试体验时。MinGW安装下载 MinGW-w64 最推荐的方式是直接下载离线压缩包.7z 格式这种方式无需运行安装程序解压即可使用配置起来最灵活。以下是基于最新资源GCC 15/14 版本的下载与选择指南1. 官方下载渠道MinGW-w64 的官方构建版本通常发布在 GitHub 上。GitHub 官方发布页niXman/mingw-builds-binaries/releasesSourceForge 镜像sourceforge.net/projects/mingw-w64/提示如果 GitHub 访问速度较慢可以尝试 SourceForge或者寻找国内的高校/软件镜像站。2. 如何选择正确的版本关键步骤在下载页面你会看到很多文件名复杂的.7z文件。对于大多数现代 Windows 用户Win10/Win11请遵循以下命名规则进行选择推荐文件名示例x86_64-15.2.0-release-win32-seh-ucrt-rt_v13-rev0.7z文件名含义拆解关键词含义建议选择x86_64架构必选。代表 64 位系统目前绝大多数电脑。win32线程模型推荐 win32。兼容性更好适合大多数 Windows 开发。(posix 适合需要跨平台兼容 Linux 代码的场景)seh异常处理推荐 seh。64 位系统下的标准异常处理性能更好。(sjlj 性能稍差dwarf 仅用于 32 位)ucrt运行时库推荐 ucrt。适用于 Windows 10/11更现代。(msvcrt 适用于 Win7 等旧系统)简单总结Win 10/11 用户找包含x86_64、win32、seh、ucrt的文件。Win 7 用户找包含x86_64、win32、seh、msvcrt的文件。3. 安装与配置解压即走下载完成后不需要运行.exe安装程序请按以下步骤操作解压文件使用 7-Zip 或 WinRAR 将下载的.7z文件解压。建议解压到一个路径简单且无中文、无空格的目录例如D:\mingw64。解压后你应该能看到bin、include、lib等文件夹。配置环境变量 (PATH)按Win S搜索“环境变量”选择“编辑系统环境变量”。点击右下角的“环境变量”按钮。在“系统变量”区域找到Path选中后点击“编辑”。点击“新建”填入你的 MinGWbin目录路径例如D:\mingw64\bin。连续点击“确定”保存所有窗口。验证安装按Win R输入cmd打开命令提示符。输入以下命令g--version如果输出了类似g (x86_64-win32-seh) 15.2.0的信息说明下载配置成功。 替代方案MSYS2如果你觉得手动配置环境变量太麻烦或者需要经常更新包可以下载MSYS2。它是一个类似 Linux 的终端环境安装后只需在终端里输入pacman -S mingw-w64-x86_64-gcc即可自动安装和管理 MinGW-w64。

更多文章