最近在学习windows上编译FFmpeg,需要用到msys2,在此记录一下安装和配置过程。
点击如下链接,下载安装包:
Index of /msys2/distrib/x86_64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
我下载的是:msys2-x86_64-20210228.exe
安装过程很简单,这里不再叙述了。
(参考:msys2 | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror)
pacman 的配置
编辑 /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
点击左下角的win,找到如下图x86 Native Tools是用来编译生成32位的可执行程序/库的,为什么不用x64的?因为32位的程序和库(以下统称为软件吧)既可以在64位的系统上运行,也可以在32位的系统上运行,兼容性更强,而64位的软件只能在64位的系统上运行。
参考:计算机中64位和32位什么意思?有什么区别?_cpu64位和32位是什么意思_℡七里晴天的博客-CSDN博客
切换到msys2的安装目录,输入如下命令打开32位的MinGW(如果想打开64位的MinGW则改成mingw64,不过我这里是要编译32位的软件,所以就用32位的MinGW)
msys2_shell.cmd -mingw32
先在msys2的命令行中输入
pacman -Syu
如下图,可以看到在开头报了一些错,不用管它。最后会提示要关闭一下msys2,直接回车确认就好了,然后再重新打开msys2命令行(仍然用上面的方法)
然后呢,再执行,如下图所示会安装一大堆工具,慢慢等待结束就好了。如果中间有什么Less than 1 bytes/sec之类的报错,没关系,再执行一次就好了,等完全没有报错的时候就OK。
pacman -Syyu
然后再根据需要安装一些对应的工具,比如我这边编译FFmpeg需要用到gcc、make、cmake、nasm、yasm、pkg-config、diffutils,使用如下命令安装即可:
pacman -S xxx
至此,msys的安装过程基本完成了,但是,为了使用windows的编译工具(比如使用cl.exe来代替gcc),还需要修改一点内容,现在如果直接在msys的命令行输入cl,应该会得到如下图所示的结果:
关闭msys2的命令行,使用记事本打开msys2_shell.cmd,
如下图所示做一点修改(取消注释),然后保存,重新打开msys2
此时,再次输入cl,就可以找到了,
至此,msys2的安装和配置到此结束。