前言
msys2是一个在windows上模拟linux环境的软件,在msys2上可以使用大多数的shell命令,它可以在一定程度上代替虚拟机,让用户可以在windows上使用shel
下载安装MSYS2
在http://msys2.github.io/ 下载msys2。进入该网址后,可以看到如下页面:
安装过程中,进度会一直卡在中间,无法继续执行,然后“隐藏详细信息”这里显示“Updating trust database”,如下图所示。当遇到这个问题时,只要点击右下方的“取消”按钮,然后重新安装即可。
安装完成后,我们进入安装目录,打开msys2_shell.cmd
在弹出的窗口上右击,选择Options,按照如下设置更改字符集,如下图所示,否则可能会出现中文乱码的问题。更改完成后,点击“Save按钮”,这里要注意更改完成后得要重新启动msys2_shell.cmd,设置才能生效。
在msys2中安装软件(启动msys2_shell.cmd)
pacman -S mingw-w64-x86_64-toolchain (64位工具链)
pacman -S mingw-w64-i686-toolchain (32位工具链)
pacman -S vi
pacman -S make
pacman -S diffutils
pacman -S pkg-confi
pacman -S base-devel
pacman -S nasm(nasm用于编译x264的汇编代码)
pacman -S yasm(yasm用于编译x264的汇编代码)
pacman -S mingw-w64-i686-SDL2 (32位SDL,生成32位ffplay播放器使用)
pacman -S mingw-w64-x86_64-SDL2 (64位SDL,生成64位ffplay播放器使用)
注意:i686 代表是 32位的程序,x86_64 代表是 64位的程序。不用管前面的 w64 是啥,其实 mingw-w64 是一个整体,把他理解成一个名字即可
安装完成之后,要注意msys2目录下有:
clang64.exe |
|
mingw32.exe |
用mingw-w64-i686-toolchain 编译。 |
mingw64.exe |
用mingw-w64-x86_64-toolchain编译。 |
msys2.exe |
|
ucrt64.exe |
注意:安装MSYS工具一定在MSYS2 MSYS(msys2_shell.cmd)窗口中进行。
3、查看gcc的版本
启动MSYS2 MinGW 64-bit ,在mingw64.exe窗口中查看gcc的版本。屏幕显示如下:
$ gcc -v
Using built-in specs.
COLLECT_GCC=D:\softwareinstall\msys64\mingw32\bin\gcc.exe
COLLECT_LTO_WRAPPER=D:/softwareinstall/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/12.1.0/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../gcc-12.1.0/configure --prefix=/mingw32 --with-local-prefix=/mingw32/local --build=i686-w64-mingw32 --host=i686-w64-mingw32 --target=i686-w64-mingw32 --with-native-system-header-dir=/mingw32/include --libexecdir=/mingw32/lib --enable-bootstrap --enable-checking=release --with-arch=i686 --with-tune=generic --enable-languages=c,lto,c++,fortran,ada,objc,obj-c++,jit --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-filesystem-ts --enable-libstdcxx-time --disable-libstdcxx-pch --enable-lto --enable-libgomp --disable-multilib --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw32 --with-mpfr=/mingw32 --with-mpc=/mingw32 --with-isl=/mingw32 --with-pkgversinotallow='Rev2, Built by MSYS2 project' --with-bugurl=https://github.com/msys2/MINGW-packages/issues --with-gnu-as --with-gnu-ld --disable-libstdcxx-debug --disable-sjlj-exceptions --with-dwarf2 --with-boot-ldflags=-static-libstdc++ --with-stage1-ldflags=-static-libstdc++
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.1.0 (Rev2, Built by MSYS2 project)
编译ffmpeg(32bit)
1、下载FFMPEG最新版本5.1
往下拉
下载完后,
解压到msys64/home下
在home文件夹下新建文件夹out
如果是编译64bit代码,启动 MSYS2 MinGW 64-bit
编译32bit代码,启动 MSYS2 MinGW 32-bit
这里编译的是32bit:
在msys64文件夹启动cmd 输入:
msys2_shell.cmd -mingw32
跳转到ffmpeg文件夹下
cd /home/ffmpeg-5.1/
输入:
./configure --enable-shared --disable-static --disable-x86asm --prefix=/home/out
编译动态库到out文件夹
make -j8 //启动8个任务并发编译
make install
问题
./autogen.sh: line 2: autoreconf: command not found
pacman -S autoconf
autoreconf-2.71: error: aclocal failed with exit status: 1
pacman -S automake
Makefile.am:36: error: Libtool library used but 'LIBTOOL' is undefined
pacman -S make
pacman -S libtool
ERROR: x265 not found using pkg-config
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
设置环境变量,/usr/local/lib/pkgconfig保存了h264,h265等pkg文件保存了安装信息