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位 GCC
  • CLANG64:LLVM Clang 编译器
    全部属于 MinGW-w64,输出原生Windows程序,不需要Cygwin运行库。

③ pacman 包管理器(最大优势)

像 Linux apt/yum,一行命令安装/升级工具库:

1
2
3
4
# 安装64位GCC
pacman -S mingw-w64-x86_64-gcc
# 安装cmake、Qt、openssl
pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-qt6

不用自己下载、配置环境变量、处理依赖,自动解决库文件冲突。

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 两种运行环境区别

  1. MSYS2(纯POSIX环境)
    路径是 /c/Users/xxx,用来跑 configure、shell脚本;
    编译出来的程序依赖 msys-2.0.dll,不适合普通Windows分发。
  2. MINGW64(64位GCC环境,日常用这个)
    路径是 Windows 原生 C:\Users\xxxg++ 编译出独立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,会打开命令行。

1781929518796

安装MinGW

在命令行中输入下面命令安装MinGW

1
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain

cpp-install-MSYS2-toolchain

配置环境变量

将你在安装过程中记录的 MinGW-w64 目标文件夹添加到列表中。如果你使用了上述默认设置,那么路径应为:C:\msys64\ucrt64\bin

检查你的 MinGW 安装

要检查你的 MinGW-w64 工具是否已正确安装且可正常使用,请打开一个新的命令提示符并输入:

1
2
3
gcc --version
g++ --version
gdb --version

你应该会看到输出内容,显示你已安装的 GCC、g++ 和 GDB 版本

在Vscode中配置MSYS2(Windows系统下使用GCC)

来自vscode的官方教程:https://code.visualstudio.com/docs/cpp/config-mingw#_installing-the-mingw-w64-toolchain

作者

Nolly

发布于

2026-06-20

更新于

2026-06-21

许可协议

评论