一. 安装并配置msys2
这个工具主要用于模拟linux的一些命令和指令。
下载地址:链接: https://pan.baidu.com/s/17_GfjHdGO21fHpH7saTIqA 提取码: 8hbi
下载完成之后将其解压到系统的任意目录,比如我解压在E:\sys\msys64目录下:
然后打开VS2019的命令行工具,选择:x86 Native Tools Command Prompt for VS 2019
点击打开, cd 到msys2 所在的目录, 执行 msys2_shell.cmd -mingw32, 启动msys2的32位运行环境:
在新启动的msys2中执行 cl, 看是否能找到cl 编译器,如果提示:bash: cl: 未找到命令
则说明msys 控制台系统中并没有共享我们本地的VS2019的运行环境,因此需要将 VS2019的运行环境添加到 msys 的控制台系统当中,目的要保证能在msys的环境中要能运行VS2019的控制台。
打开刚才msys2的解压路径,找到:msys2_shell.cmd 文件,打开:
找到:
rem set MSYS2_PATH_TYPE=inherit
将其修改为:
set MSYS2_PATH_TYPE=inherit
允许msys 继承外部的环境变量:
关闭msys2的控制台窗口,然后重新在 VS2019的控制台窗口中执行:msys2_shell.cmd -mingw32
打开msys的控制台窗口后,再次执行cl, 若遇到乱码则是因为字符编码不一致导致的,可以右击msys2的标题栏,依次选择“Options”-"Text", 分别修改Locale 和 Character set 为 “zh_CN” 和 “GBK”, PS: 修改为GBK是因为VS2019使用都是GBK的字符编码。
修改完毕后,回到msys的控制台,再次执行cl,这样就不会有乱码了:
到此为止,我们就已经把msys的环境装好了,并且已经包含了cl的命令行工具。
二. msys2 依赖环境安装
这里我们主要使用pacman来安装编译依赖工具,pacman 有点类似于ubuntu下的apt, 或是centos下的yum。
2.1 安装汇编工具
主要是在编译x264和ffmepg时会用到,如果不安装,在config中需要禁用汇编。
安装 nasm
打开msys 控制台窗口,执行 pacman -S nasm , 注意 S 大写
如果遇到乱码,则参考上面将字符编码修改为UTF-8试下。输入 y, 回车
如果提示已有的站点无法下载,则要为msys2 添加新的软件源,跟ubuntu中添加软件源的道理是一样的。
为msys2添加新的软件源的方法如下:
打开 msys2 安装目录下的 etc 目录,找到 pacman.d 文件:
打开 etc/pacman.d/mirrorlist.mingw32, 在开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
打开 etc/pacman.d/mirrorlist.mingw64, 在开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
打开 etc/pacman.d/mirrorlist.msys, 在开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
然后执行 pacman -Sy 刷新软件名数据即可。
如果刷新失败,遇到下列错误:
则需要对签名进行更新。msys2 官方也给出了相应的解决方案:
参考 https://www.msys2.org/news/, 依次在控制台窗口中执行下列命令:
curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig pacman-key --verify msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig pacman -U msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz pacman -U --config <(echo) msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz rm -r /etc/pacman.d/gnupg/ pacman-key --init pacman-key --populate msys2
来完成签名的更新:
再次安装 nasm, 执行:pacman -S nasm