windows使用msys2安装MinGW64-新

参考文档

下载 mysy2

官网下载非常慢,所以我们可以选择从清华大学的源下载:

在页面中找到最新的安装包,格式如下(个人喜欢压缩包,可以直接解压使用):
msys2-base-x86_64-XXXXXX.tar.xz
或者
msys2-x86_64-XXXXXX.exe

安装 msys2

tar.xz格式的安装包解压即可。

安装目录说明

特性mingw64ucrt64clang64
默认编译器GCC(x86_64-w64-mingw32-gcc)GCC(x86_64-w64-mingw32-gcc)Clang(clang-cl / x86_64-w64-mingw32-clang)
C 标准库msvcrt.dll(传统 MSVC 运行时)ucrtbase.dll(通用 C 运行时)ucrtbase.dll(通用 C 运行时)
C++ 标准库libstdc++(GCC 默认)libstdc++(GCC 默认)libc++(Clang 默认,可选 libstdc++)
ABI 兼容性兼容旧版 Windows(XP+)兼容 Windows 10/Server 2016+兼容 Windows 10/Server 2016+
工具链命名空间x86_64-w64-mingw32-*x86_64-ucrt-mingw32-*x86_64-clang-mingw32-*
包前缀mingw-w64-x86_64-*mingw-w64-ucrt-x86_64-*mingw-w64-clang-x86_64-*
主要优势兼容性最广,生态成熟标准合规性高,支持现代 C 特性编译速度快,LLVM 工具链集成好

总体来说:

  • mingw64是传统兼容型环境,基于 GCC 和 msvcrt,支持旧系统;
  • ucrt64是现代标准型环境,基于 GCC 和 UCRT,支持现代 C 标准,仅兼容新系统;
  • clang64是前沿工具型环境,基于 Clang/LLVM 和 UCRT,支持最新 C/C++ 特性,集成 LLVM 工具链。

总结

如果是 windows 10 及以上系统,建议使用 ucrt64 来开发 c/c++ 应用。
如果报错(例如:ucrt 在某些源码编译过程中不识别C盘、D盘之类的路径问题),再切换回 mingw64 。

切换环境的方法

  • 手动配置环境变量
  • 通过快捷方式启动:MSYS2 安装后会生成MSYS2 MinGW 64-bit(mingw64)、MSYS2 UCRT64(ucrt64)、MSYS2 CLANG64(clang64)的快捷方式,点击即可进入对应环境。

更详细的说明请在百度、或豆包中搜索:MSYS2中mingw64、ucrt64、clang64的区别与联系

初始化

由于本示例是免安装版,需要进行初始化。
运行安装目录下的msys2_shell.cmd即可。

配置国内源(清华大学的源)

方式一

编辑 /etc/pacman.d/ 下的所有文件,把 https://mirror.msys2.org/ 替换为 https://mirrors.tuna.tsinghua.edu.cn/msys2/
例如:修改 /etc/pacman.d/mirrorlist.mingw64,把
https://mirror.msys2.org/mingw/x86_64/
修改为
https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/

方式二

运行 msys2.exe,输入如下命令:

1$ sed -i "s#https\?://mirror.msys2.org/#https://mirrors.tuna.tsinghua.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist*

更新源

运行 msys2.exe,输入如下命令:

1$ pacman -Syu

安装常用工具/命令

安装 c/c++ 开发环境

安装 c/c++ 工具

运行 msys2.exe,输入如下命令:

1# mingw64 环境
2$ pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake
3
4# ucrt64 环境
5$ pacman -S mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-cmake

验证是否安装成功

在上面的步骤中,我们安装了 mingw64 和 ucrt64 两个 c/c++ 环境。
在安装目录下,mingw64.exe 和 ucrt64.exe 分别对应两个环境。
根据实际情况,我们可以选择任意一个环境启动。
建议优先使用 ucrt64 环境;如果构建编译报错,再使用 mingw64 环境。

以 mingw64 环境为例 ( 运行 mingw64.exe ):

 1$ gcc --version
 2gcc (Rev5, Built by MSYS2 project) 13.2.0
 3Copyright (C) 2023 Free Software Foundation, Inc.
 4This is free software; see the source for copying conditions.  There is NO
 5warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 6
 7$ g++ --version
 8g++ (Rev5, Built by MSYS2 project) 13.2.0
 9Copyright (C) 2023 Free Software Foundation, Inc.
10This is free software; see the source for copying conditions.  There is NO
11warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

看到以上内容则说明安装成功。

关于环境变量

如果是在普通的 cmd 中运行,建议预先指定环境变量。
还是以 mingw64 为例:

1set MSYS2_HOME=D:\dev\msys64
2set MINGW_HOME=D:\dev\msys64\mingw64
3set PATH=%PATH%;%MSYS2_HOME%\usr\bin;%MINGW_HOME%\bin

安装其他常用工具

运行 msys2.exe,输入如下命令:

1# 安装 git、vim
2pacman -S git vim