希望安装一个完整版的mingw环境,然后用于clion编译,但是用我自己下载安装的mingw 总是出现问题,
比如 clion里面说什么未找到,然后dp推荐了msys2
mingw-w64是什么?
Mingw-w64 是头文件、导入库、库和工具的集合,与编译器工具链(如 GCC 或 LLVM)结合使用时,可为构建本机 Windows 应用程序和库提供完整的开发环境。
Mingw-w64 是原始 mingw.org 项目的改进版,该项目旨在支持 Windows 系统上的 GCC 编译器。它于 2007 年分叉,以提供 64 位支持和更新的 API。从那时起,它就得到了广泛的使用和传播。
官网直达
MSYS2是什么?
MSYS2(Minimal System 2)是一个专**为windows设计的开源开发环境,**基于Cygwin和MinGW-W64构建。
它提供了类Unix的工具链(如Bash、Make、GCC
等)和软件包管理系统(pacman),旨在简化windows上的C/C++开发,尤其适合需要Unix工具链和依赖开源库(如OpenSSL、Python等)的项目。
核心功能
类 Unix 开发环境
- 提供 Unix/Linux 风格的命令行工具(如 bash, grep, sed, make 等)。
- 支持 Shell 脚本和自动化构建工具(如 autotools, CMake)。
包管理器 pacman
类似 Linux 的包管理系统,可一键安装/更新开发工具和库(如 GCC、Python、Git 等)。
软件仓库包含数千个预编译包(如 mingw-w64 工具链、openssl、zlib 等)。
与 MinGW-w64 深度集成
内置多个子系统(MSYS、MinGW 32-bit、MinGW 64-bit),支持生成原生 Windows 程序。
默认使用 UCRT(Universal C Runtime),兼容现代 Windows 版本(Win10+)
MSYS2 的三大子系统
子系统 用途
MSYS 提供 Unix 工具(如 bash, coreutils),用于运行脚本和开源项目构建。
MinGW 32-bit 编译 32 位 Windows 程序(目标名:i686-w64-mingw32)。
MinGW 64-bit 编译 64 位 Windows 程序(目标名:x86_64-w64-mingw32)。
典型使用场景
Windows 上的 C/C++ 开发
替代原生 MinGW,解决依赖库安装困难的问题(如 libcurl、FFmpeg)。
编译开源项目
支持使用 autotools/CMake 的项目(如 Git、Python、Vim)。
跨平台开发
在 Windows 上编译 Linux 兼容代码(需注意 Windows API 差异)。
替代 Cygwin
更轻量,且生成原生 Windows 程序(无需 Cygwin 的 DLL 依赖)。
MSYS2 与 MinGW 的区别
特性 MSYS2 原生 MinGW
包管理 支持 pacman,依赖库一键安装 需手动下载依赖库
更新维护 活跃维护,软件包持续更新 版本较旧,更新缓慢
兼容性 支持 UCRT,适配现代 Windows 可能依赖旧版 MSVCRT
开发体验 提供完整 Unix 工具链 仅基础编译工具
适用场景 复杂项目、依赖开源库 简单项目、轻量级开发
UCRT是什么?
UCRT 是 Universal C Runtime 的缩写&#