MSYS2 与 Scoop、WSL
- MSYS2主要用于提供Unix开发环境,如GCC、make…,可以更方便的进行本地编译
- 手动安装需要编译或Unix环境才能用的程序,如linux版本的git、Mysql、Docker、GCC
- 使用
pacman
作为包管理工具
- Scoop主要用于Windows应用安装和管理,如vscode for win、git for win、nvim for win
- 能安装的原生win程序,有一些原本在Linux上使用,但提供了Windows版本的软件,安装需要自己编译或者安装比较复杂的软件,如Nvim for win,Docker for win
- 本身就是包管理工具
- WSL相当于双系统,提供Linux环境,使用WSL编译Win程序只能交叉编译
交叉编译和本地编译
- 交叉编译是指在一个平台(通常称为宿主平台)上编译生成可在另一个不同平台(目标平台)上运行的代码。例如在WSL上编译Win程序
- 本地编译是指在目标平台(程序最终运行的平台)上进行编译的过程。例如在Win上使用MSYS2编译Win程序,在WSL上编译Linux程序
1、Windows安装MSYS2
- 官网下载安装即可:https://www.msys2.org/
- 指定MSYS2安装路径,然后下一步
- 添加环境变量
C:\msys64\ucrt64\bin
- 搜索MSYS2即可使用
区别
MSYS
:提供了基本的 Unix - like 工具,如 bash shell、make 等,是一个轻量级的 Unix 模拟层,主要用于构建一些简单的脚本和工具,所有其他环境继承自 MSYS 环境,编译时不建议使用CLANG64
:C语言编译组,基于LLVMCLANGARM64
:ARM64 架构的 CLANG 编译器环境,可用于Android程序编译MINGW64
:在 Windows 下运行的 GNU 工具链,依赖于windows自带的C语言库msvcrtUCRT64
(Universal C Runtime):通用C运行时,提供更新的Windows C组件,建议使用此环境
2、基本使用
- 更新MSYS2
pacman -Syu
- 删除缓存
所有缓存在MSYS2安装目录的
/var/cache/pacman/pkg/
下
paccache -r
- 删除不支持的包
pacman -Qm
- 查找包
pacman -Ss <name of the package>
- 查找已安装的包
pacman -Qs <name of the package>
- 安装包
pacman -S <name of the package>
- 卸载包
pacman -R <name of the package>
- 安装已下载的包
pacman -U <packagefile.tar.zst>
# 或
pacman -U <packagefile.tar.xz>
- 查找包需要的依赖项
pactree mingw-w64-x86_64-gettext
- 查找包安装的位置
which <name of package>
3、Windows安装mingw-w64 GCC
安装
pacman -S mingw-w64-ucrt-x86_64-gcc
验证
gcc --version
4、Windows安装make
pacman -S make
验证
make -v
5、Windows安装Cmake
pacman -S ucrt64/mingw-w64-ucrt-x86_64-cmake
验证
cmake --version
6、Windows安装zlib
pacman -S mingw-w64-x86_64-zlib
验证
gcc -v
7、Windows安装 libssl - dev
pacman -S mingw-w64-x86_64-openssl
验证
openssl version
8、Windows安装 libsasl2 - dev
pacman -S mingw-w64-x86_64-cyrus-sasl
9、Windows安装 libsasl2 - dev
pacman -S mingw-w64-x86_64-cyrus-sasl
10、Windos安装Rust开发环境
这里使用MSYS2提供的GNU工具链,而不是MSVC(不需要安装Visual Sudio)
- 安装GNU工具链
pacman -S mingw-w64-x86_64-toolchain
-
下载Rust Init.exe并打开:https://www.rust-lang.org/zh-CN/tools/install
-
选择自定义安装
- 将环境修改为GNU,再按1即可安装GNU版本
x86_64-pc-windows-gnu
验证
rustc --version
- Linker配置
Cargo全局配置C:\Users\Administrator\.cargo\config.toml
,新建一个文件
[target.x86_64-pc-windows-gnu]
linker = "C:\\msys64\\mingw64\\bin\\gcc.exe"
ar = "C:\\msys64\\mingw64\\bin\\ar.exe"
你也可以通过以下方式配置指定项目
/projects/foo/.cargo/config.toml
/projects/.cargo/config.toml
Rustup配置C:\Users\Administrator\.rustup\settings.toml
在安装时选2配置的内容,不需要修改
default_host_triple = "x86_64-pc-windows-gnu"
default_toolchain = "stable-x86_64-pc-windows-gnu"
profile = "default"
version = "12"
[overrides]
- 添加环境变量
除了msys2、mingw需要添加外,.cargo\bin也需要添加,(默认会自动添加)
C:\Users\Administrator\.cargo\bin
C:\msys64
C:\msys64\mingw64\bin
- 验证
rustc --version --verbose
cargo --version --verbose