C++基础概念
C++ 一些基础概念
编译环境概念
MinGW
1. 全称
MinGW = Minimalist GNU for Windows
直译:Windows 极简版 GNU 工具链
本质是什么
一套把 Linux 上的 GCC 编译器移植到 Windows 的工具:
编译器:gcc.exe(C)、g++.exe(C++)
链接器、make、调试器 gdb 全套
作用:Windows 下不用装庞大 VS,也能编译 C/C++
MSVC
全称
MSVC = Microsoft Visual C++
微软官方提供的一套 C / C++ 编译工具链,集成在 Visual Studio(VS)里。
核心组成
编译器 cl.exe
把 .c/.cpp 源码翻译成机器码,就是你在 PowerShell 里执行的 cl.exe;
链接器 link.exe
把编译产物、系统库合并成 .exe/.dll;
CRT/UCRT 标准库
float.h、iostream、printf 这些头文件、运行库都在这里
Windows SDK 适配层
用来调用 Windows 窗口、文件、网络等系统 API。
工具集版本 v141 /v142 /v143(之前问过)
v141:VS2017 配套 MSVC
v142:VS2019 配套 MSVC
v143:VS2022 配套 MSVC
MSYS2 完整通俗讲解
全称
MSYS2 = Minimal SYStem 2
直译:极简类Unix系统第二代,基于 Cygwin + MinGW-w64 打造的 Windows 开发环境。
它到底是什么
一套在 Windows 上模拟 Linux/bash 终端的完整生态,自带 MinGW-w64(GCC编译器) + ArchLinux 同款包管理器 pacman,一键安装 GCC、CMake、Git、OpenSSL、Qt 等上千开源库。
三大组成部分
① POSIX 模拟层(MSYS 环境)
自带 bash、ls、cd、grep、sed、make、autotools 等 Linux 命令;
解决开源项目普遍用 ./configure && make 构建、Windows cmd/PowerShell 跑不通的痛点。
② 多套编译器工具链(核心编译能力)
内置主流编译器,一键切换:
MINGW64:64位 GCC(g++),生成纯Windows exe,无额外依赖MINGW32:32位 GCCCLANG64:LLVM Clang 编译器
全部属于 MinGW-w64,输出原生Windows程序,不需要Cygwin运行库。
③ pacman 包管理器(最大优势)
像 Linux apt/yum,一行命令安装/升级工具库:
1 | # 安装64位GCC |
不用自己下载、配置环境变量、处理依赖,自动解决库文件冲突。
MSYS2 / MinGW / MSVC 三者清晰区分
MinGW
仅指 GCC 编译器本体,单独下载只有 gcc/g++,没有bash、没有包管理器,装第三方库极其麻烦。
MSYS2 内置了完整新版 MinGW-w64,现在没人单独下老MinGW。
MSYS2
环境外壳 + MinGW-w64 GCC + bash + pacman,专门编译跨平台开源代码、Linux移植项目。
编译参数:-o -finput-charset -Wall。
MSVC(VS cl.exe)
微软闭源编译器,无bash,专用开发Windows原生软件(窗口、MFC、驱动、DX游戏);
编译参数:/EHsc /utf-8 /Fe,必须加载 vcvars64.bat 才能找到系统头文件 float.h。
MSYS2 两种运行环境区别
- MSYS2(纯POSIX环境)
路径是/c/Users/xxx,用来跑 configure、shell脚本;
编译出来的程序依赖msys-2.0.dll,不适合普通Windows分发。 - MINGW64(64位GCC环境,日常用这个)
路径是 Windows 原生C:\Users\xxx,g++编译出独立exe,复制到任何Windows都能直接运行,无附加dll依赖。
适用场景怎么选
选 MSVC(VS2022)
做 Windows 窗口软件、MFC、Qt、游戏、驱动
需要完整调试、可视化 IDE、断点内存查看
调用大量 Windows 系统 API
企业 Windows 项目开发(你现在的场景)
用 MSYS2(GCC)(选 MinGW)
- 学习 C/C++、算法、跨平台控制台程序
- 编译开源项目(FFmpeg、Qt、OpenCV、CMake 工程)
- 习惯 Linux 命令,不想装几 GB 的 VS
- 代码未来要迁移到 Linux/macOS
简单一句话总结
- MSYS2/MinGW = Windows 上的 GCC 轻量免费编译器
- MSVC = 微软 Visual Studio 自带的 Windows 专用商业编译器
极简总结
- MinGW = Windows版GCC编译器
- MSYS2 = 带bash、pacman、MinGW全套的Linux风格开发环境
- MSVC = VS自带微软Windows专用C++编译器
安装MSYS2
下属安装步骤来源于VSCode官方教程,参见:在Vscode中配置MSYS2(Windows系统下使用GCC
MSYS2官方下载地址:https://github.com/msys2/msys2-installer/releases/download/2025-08-30/msys2-x86_64-20250830.exe
在安装向导中,选择你想要的安装文件夹。记录下该目录,以便后续使用。在大多数情况下,推荐的目录是可接受的。当进行到设置开始菜单快捷步骤时,也是如此。完成后,确保勾选立即运行 MSYS2选项并选择完成。这将为你打开一个 MSYS2 终端窗口。
或者在windows的开始菜单中选择MSYS2 MSYS,会打开命令行。

安装MinGW
在命令行中输入下面命令安装MinGW,
1 | pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain |

配置环境变量
将你在安装过程中记录的 MinGW-w64 目标文件夹添加到列表中。如果你使用了上述默认设置,那么路径应为:C:\msys64\ucrt64\bin
检查你的 MinGW 安装
要检查你的 MinGW-w64 工具是否已正确安装且可正常使用,请打开一个新的命令提示符并输入:
1 | gcc --version |
你应该会看到输出内容,显示你已安装的 GCC、g++ 和 GDB 版本
在Vscode中配置MSYS2(Windows系统下使用GCC)
来自vscode的官方教程:https://code.visualstudio.com/docs/cpp/config-mingw#_installing-the-mingw-w64-toolchain

