Compilación cruzada de Windows VLC en Linux

1. Meta

Objetivo: realizar una compilación cruzada de la versión VLC de Windows en Linux y realizar la personalización de las funciones

2. Construye el entorno

2.1 Entorno de compilación

  • Versión del sistema: UnionTech OS Desktop 20 Inicio
  • Versión del núcleo: 5.10.0-amd64-desktop
  • Versión VLC: 3.0.18
  • Versión prediseñada: vlc-contrib-x86_64-w64-mingw32-latest

2.2 Instalar herramientas y dependencias

apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64-tools
apt-get install lua5.2 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

/bin/bash: i686-w64-mingw32-gcc:未找到命令
apt-get install gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-tools

2.3 Obtener el código fuente

Para acelerar la velocidad de descarga, el proyecto de bifurcación de otras personas se descargó a través de gitee, descargue la versión 3.0.18 en la etiqueta del proyecto

2.4 Preparar la biblioteca de terceros

2.4.1 Método 1: prediseño (recomendado)

Nota: el método preconstruido es más rápido y más fácil, pero puede requerir versiones coincidentes

mkdir -p contrib/win32
cd contrib/win32

下载http://download.videolan.org/pub/videolan/contrib/x86_64-w64-mingw32/vlc-contrib-x86_64-w64-mingw32-latest.tar.bz2,并放入contrib/win32目录

../bootstrap --host=x86_64-w64-mingw32
make prebuilt

2.4.2 Método 2: Construcción manual (no recomendado)

Nota: lleva mucho tiempo y esfuerzo, y puede encontrar varios errores

apt-get install subversion yasm cvs cmake ragel autopoint
mkdir -p contrib/win32
cd contrib/win32
../bootstrap --host=x86_64-w64-mingw32
make fetch
make

2.5 Configurar el entorno de compilación

cd /home/name/vlc-3.0.18
./bootstrap
mkdir win32 && cd win32

export PKG_CONFIG_LIBDIR=/home/name/vlc-3.0.18/contrib/x86_64-w64-mingw32/lib/pkgconfig

../extras/package/win32/configure.sh --host=x86_64-w64-mingw32 --build=x86_64-pc-linux-gnu

../configure --host=x86_64-w64-mingw32 --build=x86_64-pc-linux-gnu --disable-chromecast  

3. Compilar VLC

make

4. Paquete VLC

make package-win-common 
	输出创建名为vlc-x.x的子目录,可以直接从这个目录运行VLC
make package-win-strip	
	与package-win-common基本相同,但将创建“strip”的二进制文件(即最小的大小,无法供调试器使用)
make package-win32-7zip   
	输出7z的压缩文件包
make package-win32-zip     
	输出zip的压缩文件包
make package-win32	
	输出一个自动安装包。必须将NSIS安装在其默认位置才能正常工作

5. Registro de errores

5.1 Error 1: error de configuración

  • Mensaje de error: configure: error: necesita luac de 32 bits cuando usa lua de contrib.
  • Solución: apt-get install lua5.2:i386

5.2 Error 2: cometer un error de compilación

  • 错误信息:stream_out/chromecast/cast_channel.pb.h:12:2: error: #error Este archivo fue generado por una versión más reciente de protoc que es
  • Solución: agregue la opción –disable-chromecast cuando configure, ciérrelo primero. Hay un dicho en Internet que es causado por la versión inconsistente de PROTOBUF. Hay evaluaciones de que esta función no está disponible para proyectos generales, así que no gaste energía en investigarla.

5.3 Error 3: error de empaquetado del paquete-win32

  • Mensaje de error: make[3]: *** No hay regla para hacer el destino "/usr/include/wine/windows/stdole2.idl", requerido por "stdole2.tlb". detener.
  • Solución: instale wine (apt-get install wine), mi entorno tiene /usr/include/wine/wine/windows/stdole2.idl sin /usr/include/wine/windows/stdole2.idl, así que hice un hipervínculo: ln -s /usr/incluir/vino/vino/ventanas /usr/incluir/vino/ventanas

5.4 Error 4: error de empaquetado del paquete-win32

  • Mensaje de error: /bin/bash: i686-w64-mingw32-gcc: comando no encontrado
  • Solución: apt-get install gcc-mingw-w64-i686 g+±mingw-w64-i686 mingw-w64-tools

6. Documentos de referencia

  • https://wiki.videolan.org/Win32Compile/
  • https://wiki.videolan.org/Categoría:Edificio/

Supongo que te gusta

Origin blog.csdn.net/weixin_35804181/article/details/129559969
Recomendado
Clasificación