一、安装
1. 从https://www.msys2.org/ 下载安装msys2
也可以从镜像: http://mirrors.aliyun.com/msys2/distrib/x86_64/ 下载最新的安装包 msys2-x86_64-20230718.exe2. 更新下载源为阿里云
sed -i "s#https\?://mirror.msys2.org/#http://mirrors.aliyun.com/msys2/#g" /etc/pacman.d/mirrorlist*
然后通过 pacman -Syyu 更新一下软件包列表注意: msys2有多个发行版本,包括mingw32,mingw64,ucrt64,lang32,lang64等等。由于我们选择gcc,以及系统都是win10以上,所以我们选择ucrt64这个发行版本。
3.安装开发环境
可以通过 pacman -Ss <name or part of the name of the package> 来查询有哪些包。
可以通过 pacman -Ql package_name 来查看某个安装的包的具体文件
可以通过 pacman -Rsn package_name 来删除某个安装的包的具体文件,包括依赖
通过 pacman -S make 安装make
通过 pacman -S mingw-w64-ucrt-x86_64-gcc 安装gcc
通过 pacman -S libpcap-devel 安装libpcap的开发环境
通过 pacman -S mingw-w64-ucrt-x86_64-libpcap 安装libpcap的开发环境
通过 pacman -S mingw-w64-ucrt-x86_64-cjson 安装cjson
二、使用
如果是使用makefile编译,在msys2的窗口中进入你平时编译的文件路径,正常使用make编译即可。
如果是简单代码使用gcc编译,也是直接进入源码程序的文件夹,使用gcc命令编译即可。
三、作用
使用 msys2 可以生成在 windows 环境下运行的可执行文件.exe。
四、说明
MSYS2(Minimal SYStem for Windows)是一个用于 Windows 环境下的软件开发平台,它为 Windows 用户提供了一个类似于 Unix 的命令行环境,从而使得开发者能够在 Windows 上轻松地进行跨平台开发。MSYS2 包括了三个主要组件:MSYS、MINGW 和 MINGW-w64。MSYS 是一个基于 Cygwin 的 Bash shell 环境,提供了许多 Unix 工具和命令;MINGW 和 MINGW-w64 则是用于编译 Windows 本地可执行文件的 GNU 工具链。
MSYS2 的主要优势在于它能够简化跨平台开发流程。对于需要在 Windows 系统上进行 C/C++ 开发的用户来说,MSYS2 提供了一个熟悉的开发环境,使得开发者无需离开 Windows 就可以使用 GNU 工具链来构建和调试应用程序。此外,MSYS2 还提供了一个包管理系统,基于 Arch Linux 的 Pacman 包管理器,这使得安装和管理各种开发工具、库和其他依赖变得非常简单。
通过 MSYS2,开发者可以在 Windows 上创建、编译和运行适用于 Windows 的应用程序。这对于那些需要同时支持 Windows 和 Unix-like 系统的应用程序尤其有用。MSYS2 支持 32 位和 64 位的 Windows 系统,并且可以用来构建针对不同架构(如 x86 和 x86_64)的可执行文件。此外,MSYS2 还支持多版本的 GCC 编译器,可以根据项目的具体需求选择合适的版本进行编译。
对于开源项目和商业软件开发而言,MSYS2 是一个强大的工具,因为它不仅简化了 Windows 环境下的开发流程,还促进了跨平台软件的开发。开发者可以使用 MSYS2 来构建跨平台的应用程序,确保软件能够在不同的操作系统上运行良好。此外,MSYS2 还支持使用 CMake、Autotools 等现代构建系统,这使得项目管理和构建过程更加灵活和高效。
4.1 组成部分
MSYS (Minimal SYStem): MSYS 是一个基于 Cygwin 的工具集,但它比 Cygwin 更轻量级。它提供了一个 POSIX 兼容的 shell 环境,允许用户在 Windows 上运行传统的 Unix 工具和脚本。MSYS2 包括两个主要的 shell 环境:MSYS2 和 MSYS2 UCRT(基于 UCRT 的版本)。
MINGW (Minimalist GNU for Windows): MINGW 是一组 GNU 工具的 Windows 端口,包括编译器、链接器和其他开发工具。这些工具可以直接生成针对 Windows 的可执行文件,而不需要额外的模拟层。MINGW 的主要目的是提供一个轻量级的开发环境,使得用户可以在 Windows 上编译本地的 Windows 应用程序。
MINGW-w64: MINGW-w64 是 MINGW 的一个扩展,增加了对 64 位 Windows 的支持,并改进了对 C++ 标准的支持。它包括了 GCC 编译器以及其他常用的开发工具,如 GDB 调试器。
4.2 功能
包管理: MSYS2 使用 pacman
作为包管理器,类似于 Arch Linux 的包管理系统。你可以通过 pacman
安装各种软件包,包括编译工具、库文件、开发工具等。
构建工具: MSYS2 集成了许多构建工具,如 make
、autotools
、cmake
等,使得在 Windows 上进行软件开发变得更加容易。
跨平台编译: 除了可以在 Windows 上编译 Windows 程序外,MSYS2 还可以用来编译跨平台的应用程序,例如从 Linux 源代码编译 Windows 可执行文件。
Shell 环境: MSYS2 提供了一个类似于 Linux 的命令行环境,使得熟悉 Linux 的用户可以无缝地过渡到 Windows 开发环境。