windows平台下交叉编译工具链和环境详解

希望安装一个完整版的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 的缩写&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值