ubuntu14.04编译VLC最新版本3.2.0

1.编译环境搭建

  • ubuntu14.04
  • jdk1.8.0(JDK)
  • android-ndk-r18b(NDK)
  • android-sdk-linux(SDK)

1.1 设置环境变量

vim ~/.bashrc

1.2 在打开的.bashrc文件最后添加如下代码

#set jdk
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_201(你自己的jdk路径)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
 
#set ndk
export ANDROID_NDK=/home/adolph/tools/android-ndk-r18b(你自己的ndk路径)
export PATH=${PATH}:$ANDROID_NDK
 
#set android-sdk
export ANDROID_SDK=/home/adolph/tools/android-sdk-linux(你自己的sdk路径)
export PATH=$PATH:${ANDROID_SDK}/tools
export PATH=$PATH:${ANDROID_SDK}/platform-tools

1.3 在终端中输入如下命令使环境变量生效

source ~/.bashrc

2.安装编译VLC所需的工具包

以下是官方文档提供的安装命令,实际操作中建议一个一个安装

sudo apt-get install automake ant autopoint cmake build-essential libtool-bin \ patch pkg-config protobuf-compiler ragel subversion unzip git \ openjdk-8-jre openjdk-8-jdk flex python wget

因为我们已经安装了jdk,所以openjdk-8-jre openjdk-8-jdk可以不用安装。

如果是64位ubuntu,为了防止后面少走弯路,需要安装32位的库。

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install zlib1g:i386 libstdc++6:i386 libc6:i386

3.开始编译VLC

3.1 下载VLC编译代码

git clone https://code.videolan.org/videolan/vlc-android.git

3.2 进入到vlc-android目录,执行编译指令开始编译

cd vlc-android
sh compile.sh -a armeabi-v7a

4.编译中可能出现的问题

4.1 “Unrecognized syntax identifier “proto3””

解决办法:

新版VLC要求使用protobuf3,而ubuntu14.04的版本为2.x,所以我们需要安装新的版本。

1、查看protobuf版本

protoc --version

2、下载:https://github.com/google/protobuf/releases/download/v3.1.0/protobuf-cpp-3.1.0.tar.gz 

3.安装

sudo tar zxvf ./protobuf-cpp-3.1.0.tar.gz    #解压
cd ./protobuf-3.1.0/    #解压出的文件夹
./configure    #运行configure
make
make check
sudo make install
make clean
sudo ldconfig  #更新shared library cache

4.2 git下载慢的问题

解决办法:

https://blog.csdn.net/weixin_37910453/article/details/86655613

 

4.3 python版本低

File "/home/adolph/tools/vlc-android/vlc/extras/tools/meson/mesonbuild/interpreterbase.py", line 577
 return {**l, **r}
             ^
SyntaxError: invalid syntax

解决办法:

安装python3.5以上版本

https://blog.csdn.net/qq_39734379/article/details/84580645

 

4.4 gettext的版本号不对

androideabi/share/aclocal
autoreconf: Entering directory `.’
autoreconf: running: autopoint --force
autopoint: *** The AM_GNU_GETTEXT_VERSION declaration in your configure.ac
file requires the infrastructure from gettext-0.19.3 but this version
is older. Please upgrade to gettext-0.19.3 or newer.
autopoint: *** Stop.
autoreconf: autopoint failed with exit status: 1
make: *** [.gpg-error] Error 1
contribs: make failed

解决办法:

1 通过gettext --version命令查看当前机器gettext的版本号,显示如下:

gettext (GNU gettext-runtime) 0.18.3
Copyright (C) 1995-1997, 2000-2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Ulrich Drepper.

2 通过grep --include=configure.ac -rn AM_GNU_GETTEXT_VERSION .命令查看哪些文件涉及版本号,显示如下:

./vlc/configure.ac:493:AM_GNU_GETTEXT_VERSION([0.19.8])
./vlc/contrib/contrib-android-arm-linux-androideabi/gnutls/configure.ac:256:AM_GNU_GETTEXT_VERSION([0.19])
./vlc/contrib/contrib-android-arm-linux-androideabi/libgpg-error/configure.ac:154:AM_GNU_GETTEXT_VERSION([0.18.3])

3修改以上文件中AM_GNU_GETTEXT_VERSION为自己的版本号0.18.3

 

4.5 安装的libtool存在问题

.../configure:line 9171:syntax error near unexpected token 'dlopen'
../configure line 9171:'LT_INIT(dlopen win32-dll shared disable-static)'

解决办法:进入vlc-android/vlc目录下执行autoreconf命令

在运行的过程中可能会出现以下错误:

Makefile.am:10: error: Libtool library used but 'LIBTOOL' is undefined
Makefile.am:10:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
Makefile.am:10:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
Makefile.am:10:   If 'LT_INIT' is in 'configure.ac', make sure
Makefile.am:10:   its definition is in aclocal's search path.

解决办法:

需要在目录中运行libtoolize,然后重新运行:

> aclocal

> autoheader

> autoreconf

 

编译完成后在vlc-android/vlc-android/build/outputs/apk/dev目录中会生成APK文件

5.编译aar文件

第四步执行成功后,可以执行下面这个命令来生成aar文件

sh compile.sh -l -a armeabi-v7a -r

编译成功后会在vlc-android/libvlc/build/outputs/aar中生成aar文件

 

最后提供JDK,NDK,SDK包和我已经编译好的APK文件和AAR文件

链接: https://pan.baidu.com/s/1nbdKXMHnOl743E6FbdVLQw 提取码: fs3c

 

参考:

https://blog.csdn.net/wkw1125/article/details/56845405

https://blog.csdn.net/zhuyunier/article/details/82843958

https://wiki.videolan.org/AndroidCompile/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值