網頁

2022年7月27日 星期三

Build VideoLAN 3.0.17.4 on Ubuntu 18.04

參考 Build VideoLAN 3.0.16 on Ubuntu 18.04
原先想要在 Ubuntu 20.04 上建立,但發現不容易

$ cd ~/Data/VLC
$ sudo git clone https://code.videolan.org/videolan/vlc.git vlc-3.0
$ cd vlc-3.0
$ sudo git branch -a
$ sudo git log --tags --simplify-by-decoration --pretty="format:%ai %d"
$ sudo git checkout tags/3.0.17.4
$ sudo git describe --tags
// 完整地回復到最後版本,並且刪除不必要的檔案
$ sudo git reset --hard
$ sudo git clean -f -d


$ docker pull ubuntu:18.04
$ docker run --name=vlc -it -v ~/Data/VLC/vlc-3.0:/root/vlc-3.0 -v ~/Data/VLC/build_vlc:/root/build_vlc ubuntu:18.04 /bin/bash
# cd /root/vlc-3.0/
# apt-get update
# apt install software-properties-common
# add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse"
# apt-get update
# apt-cache showpkg gcc-mingw-w64-base
# apt-get install gcc-mingw-w64-base=5.3.1-8ubuntu3+17
# apt-get install gcc-mingw-w64-x86-64=5.3.1-8ubuntu3+17
# apt-get install g++-mingw-w64-x86-64=5.3.1-8ubuntu3+17
# apt-get install gcc-mingw-w64-i686=5.3.1-8ubuntu3+17
# apt-get install g++-mingw-w64-i686=5.3.1-8ubuntu3+17
# apt-get install mingw-w64-tools=5.0.3-1
# apt-get install lua5.2 libtool automake autoconf autopoint make gettext pkg-config
# apt-get install qt4-dev-tools qt5-default git subversion cmake cvs 
# apt-get install wine64-development-tools libwine-dev zip p7zip nsis bzip2
# apt-get install yasm ragel ant default-jdk protobuf-compiler dos2unix
# apt-get install subversion yasm cvs cmake ragel autopoint

以下的 HOST-TRIPLET 在 win32 時換成 i686-w64-mingw32, 在 win64 時換成 x86_64-w64-mingw32
build vlc contrib
# cd /root/vlc-3.0/
# mkdir -p contrib/win32
# cd contrib/win32
# ../bootstrap --host=HOST-TRIPLET
# make fetch
//問題
curl: (56) Recv failure: Connection reset by peer
../src/x264/rules.mak:81: recipe for target '../tarballs/x264-git.tar.bz2' failed
//解決 類似失敗,再 fetch 一次
# make fetch
# make
//問題
env: 'meson': No such file or directory
../src/fribidi/rules.mak:21: recipe for target '.fribidi' failed
make: *** [.fribidi] Error 127
//解決
# apt-get install meson
//問題
meson.build:1:0: ERROR: Meson version is 0.45.1 but project requires >= 0.48.
//解決
# apt-get install python3-pip
# python3 -m pip install meson
//問題
/root/vlc-3.0/contrib/win32/fontconfig/missing: line 81: gperf: command not found
WARNING: 'gperf' is missing on your system.
//解決
# apt-get install gperf
//問題
configure: error: BD-J requires ANT, but ant was not found. Install ant or disable jar file building (--disable-bdjava-jar)
../src/bluray/rules.mak:56: recipe for target '.bluray' failed
//解決
# apt-get install ant
//問題
[javac] /root/vlc-3.0/contrib/win32/bluray/src/libbluray/bdj/java-j2se/java/io/BDFileSystemImpl.java:21: error: BDFileSystemImpl is not abstract and does not override abstract method isInvalid(File) in FileSystem
[javac] error: Source option 5 is no longer supported. Use 6 or later.
[javac] error: Target option 1.5 is no longer supported. Use 1.6 or later.
//解決
# apt-get install openjdk-8-jdk
# update-alternatives --config java
//問題
Program nasm found: NO
meson.build:397:4: ERROR: Program 'nasm' not found or not executable
//解決
# apt-get install wget
# wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.gz
# tar xvf nasm-2.14.02.tar.gz
# cd nasm-2.14.02/
# ./configure
# make
# make install


build vlc
# cd /root/vlc-3.0
# ./bootstrap
//問題
ERROR: flex is not installed.
//解決
# apt-get install flex
//問題
ERROR: GNU bison is not installed.
//解決
# apt-get install bison
# mkdir win32 && cd win32
# export PKG_CONFIG_LIBDIR=/root/vlc-3.0/contrib/HOST-TRIPLET/lib/pkgconfig 
# ../extras/package/win32/configure.sh --host=HOST-TRIPLET --build=x86_64-pc-linux-gnu
# make
//問題
stream_out/chromecast/cast_channel.pb.h:17:2: error: 
#error This file was generated by an older version of protoc which is
//解決
# git clone https://github.com/protocolbuffers/protobuf.git
# cd protobuf
# git checkout tags/v3.1.0
# ./autogen.sh
# ./configure
# make
# make check
# make install
# ldconfig # refresh shared library cache.
# make package-win-common
//問題
/bin/bash: wget: command not found
Makefile:1043: recipe for target 'npapi-sdk' failed
//解決
# apt-get install wget
# make package-win32-zip


沒有留言:

張貼留言