windows下mingw+msys编译vlc

Win10+msys2环境编译vlc
先附上所有安装资料:链接:https://pan.baidu.com/s/1eqD28odTqfYYiuqIDuCMUg
提取码:c4t7
也可以下面链接自行下载各个包
MSYS2安装
http://msys2.github.io/
安装完成运行 MSYS232bit后执行 pacman -Syu
再执行pacman -Su 如果失败使用管理员运行MSYS232bit
之后执行 pacman -S git subversion cvs automake autoconf libtool m4 make gettext pkg-config mingw-w64-i686-lua findutils mingw-w64-i686-headers yasm patch

遇到问题:有些包显示未下载成功
解决方法:https://www.cnblogs.com/marklove/p/10851275.html
给三个文件添加源地址
windows下mingw+msys编译vlc

Gcc 下载
https://sourceforge.net/projects/mingw-w64/files/mingw-w64/
windows下mingw+msys编译vlc
下载这个版本,解压到C:\msys32下,打开MSYS232bit,用gcc -v查看版本

Vlc源码下载
https://get.videolan.org/vlc/3.0.8/
windows下mingw+msys编译vlc
解压到C:\msys32\usr\local\vlc-3.0.8

Vlc第三方包下载
http://download.videolan.org/pub/videolan/contrib/i686-w64-mingw32/
windows下mingw+msys编译vlc

开始编译工作:
以管理员运行MSYS232bit运行
第一步:cd vlc-3.0.8/contrib; mkdir win32 && cd win32
第二步:执行命令…/bootstrap --build=i686-w64-mingw32
第三步:将下载的第三方包(要用管理员身份否则出错)解压到C:\msys32\usr\local\vlc-3.0.8\contrib下

windows下mingw+msys编译vlc
将C:\msys32\usr\local\vlc-3.0.8\contrib\src\change_prefix.sh复制到C:\msys32\usr\local\vlc-3.0.8\contrib\i686-w64-mingw32下

第四步:cd …/i686-w64-mingw32

第五步:./change_prefix.sh

第六步:rm …/i686-w64-mingw32/bin/{luac,moc,rcc,uic}
第七步:cd …/…/回到vlc根目录
第八步:./bootstrap
第九步:mkdir win32 && cd win32
第十步
BUILDCC="/mingw32/bin/gcc" sh …/extras/package/win32/configure.sh --host=i686-w64-mingw32 --disable-nls --disable-faad --disable-chromecast

第十一步:拷贝vlc3.0.8/contrib/i686-w64-mingw32/bin路径下的moc.exe,uic.exe,rcc.exe到C:\msys32\mingw32\bin路径下
第十二步:make
第十三步:make package-win-common

错误:打包失败
cp: cannot stat ‘…/share/hrtfs’: No such file or directory
Makefile:2388: recipe for target ‘package-win-common’ failed
我手动建了这个vlc-3.0.4/share/hrtfs(空文件),重新打包(不需要删除已经打好的包)

错误:打包失败 find: ‘unix2dos’: No such file or directory
输入 pacman -S dos2unix 安装完后 重新打包成功(不需要删除已经打好的包

打包结束后遇到问题:vlc应用程序无法正常启动0xc000007b
从C:\msys2\mingw32\i686-w64-mingw32\lib 复制 libssp-0.dll 到打包好的文件下(vlc.exe同级目录),不能用从别处获得的libssp-0.dll,只能从自己编译的环境下拿来用,否则依旧是无法启动。