ubuntu20.04交叉编译vlc3.0.21 x64 windows版本
1.下载源码:Index of /pub/videolan/vlc/3.0.21/
2.下载contrib:
http://download.videolan.org/pub/videolan/contrib/x86_64-w64-mingw32/vlc-contrib-x86_64-w64-mingw32-20240625.tar.bz2
3.安装依赖
sudo apt-get update -qq
#官网说的依赖
sudo apt-get install -qqy \git wget bzip2 file libwine-dev unzip libtool libtool-bin libltdl-dev pkg-config ant \build-essential automake texinfo yasm p7zip-full autopoint \gettext cmake zip wine nsis g++-mingw-w64-i686 curl gperf flex bison \libcurl4-gnutls-dev python3 python3-setuptools python3-mako python3-requests \gcc make procps ca-certificates \openjdk-11-jdk-headless nasm jq gnupg \meson autoconf liblua5.2:i386 liblua5.2-dev#博客说的依赖,反正都安装一遍
apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64-tools
apt-get install lua5.2:i386 libtool automake autoconf autopoint make gettext pkg-config qt4-dev-tools qt5-default git subversion cmake cvs wine64-development-tools libwine-dev zip p7zip nsis bzip2 yasm ragel ant default-jdk protobuf-compiler dos2unix
4.安装contrib
mkdir contrib/win32 && cd contrib/win32#将下载好的contrib文件拷贝到contrib/win32下
#或者用命令下载:wget http://download.videolan.org/pub/videolan/contrib/x86_64-w64-mingw32/vlc-contrib-x86_64-w64-mingw32-20240625.tar.bz2tar -xjf vlc-contrib-*.tar.bz2
../bootstrap --host=x86_64-w64-mingw32
make prebuilt
5.返回源码根目录,配置编译环境
cd /home/name/vlc-3.0.18
./bootstrap
mkdir win32 && cd win32
6.编写build.sh,内容如下:
export PKG_CONFIG_LIBDIR="../contrib/x86_64-w64-mingw32/lib/pkgconfig"
export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
../configure \--host=x86_64-w64-mingw32 \--disable-static \--enable-shared \--disable-chromecast \--with-win32-sdk=../contrib/x86_64-w64-mingw32
7.执行./build.sh文件,有报错一般是缺组件,apt安装就是了
8.执行make -j4编译,遇到错误就查,参考:修改vlc 3.0.21源码解决directx_va.c:69:41: error: ‘FF_PROFILE_AV1_HIGH’ undeclared here (not in a function)-CSDN博客
如果是/gettext-runtime/intl/printf.c:138: undefined reference to `__imp___acrt_iob_func',就是minGW版本错误,那么需要更换ubuntu版本,我一开始是18.04,后面折腾问题越来越多,果断换ubuntu20.04,果然没有这些错误了。
还有不要在共享文件里编译,不要git clone费劲下载源码和contrib依赖,直接浏览器下载,不然数不清的坑等着你。
9.执行make package-win-common,会生成一个vlc3.0.21的文件夹,要的东西都在里面了。
10.参考
linux上交叉编译windows的VLC - 阿风小子 - 博客园