红联Linux门户
Linux帮助

Ubuntu15.10编译VLC Android(安卓)过程记录

发布时间:2016-03-13 09:47:52来源:linux网站作者:残酷月光

1、必要库的安装

除基本编译环境(gcc、g++等外),需要额外安装如下的库(用于下载必要的依赖文件)


(1)JDK

推荐安装Oracle的JAVA SE(http://www.oracle.com/technetwork/java/javase/downloads/index.html),下载最新的版本即可,不推荐OpenJDK版本(容易出现一些包找不到的问题);

安装之前检查是否有安装过其他jdk版本,执行 java -version看是否有输出版本信息。

如果已经安装过openJdk,执行如下指令卸载所有OpenJdk版本。

sudo apt-get remove openjdk*

下载之后设置环境变量,添加JDK相关的设置:

$ gedit ~/.bashrc
# 在该文件末尾加入以下内容(JAVA_HOME设置为JDK文件夹的路径)
export JAVA_HOME=/usr/local/jdk1.8.0_73
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:{JRE_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin
# 完成后执行java -version测试是否得到版本号
$ java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environ,ent (build 1.8.0_73-b02)
Java HotSpot(TM) 64-bit Server VM (build 25.73-b02, mixed mode)

完成后执行java -version如果得到上述版本信息说明安装成功。


(2) 所依赖的必要库

均可以通过sudo apt-get install指令进行安装,例如

sudo apt-get install yasm

yasm (编译汇编必要)

curl (下载依赖的源码包必要)

autoreconf ()

automake ()

gcc-fortran (cmake新版本编译需要)

elf 库 (cmake编译需要,如果cmake版本达到3.4以上可不需要)

qmake (cmake编译需要)

patch (必要的工具,某些官方的代码需要打补丁才能在vlc中使用)

gettext (编译VLC必须,需要从 http://ftp.gnu.org/gnu/gettext/ 上下载最新的版本自行编译安装)


(3) 安卓开发必须安装的工具与包

NDK(最新的版本,需要包含将要编译的安卓版本的对应platform文件,采用C/C++开发必备)

SDK(最新的版本,也需要包含对应版本的platform文件)

Extra libs(SDK安装完毕后执行 android update sdk然后选择相应的包进行更新):

Local maven repository for Support Library

Android Support libs

Google Repository


2、下载VLC Android的git工程

下载地址:https://code.videolan.org/videolan/vlc-android.git

Windows下注意设置AutoCrLf和SafeCrLf,

建议的设置为

#提交时转换为LF,检出时不转换
git config --global core.autocrlf input
#提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn


3、执行 ./compile.sh 命令等待编译过程完成
(1)无法下载gradle的错误

if [ ! -d "gradle/wrapper" ]; then
echo "Downloading gradle"
GRADLE_VERSION=2.6
GRADLE_URL=http://servie.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
wget ${GRADLE_URL} 2>/dev/null || curl -O ${GRADLE_URL}

需要修改一处地址,否则无法下载到正确的包:
GRADLE_URL=http://downloads.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip


(2)nfs库编译错误(可能出现)

修改 contrib/contrib-android***/nfs/lib 目录下的 libnfs.c 和 libnfs-sync.c

出现错误的原因是代码中有这样两行可能导致错误:

#ifdef __ANDROID__
#define statvfs statfs
#endif

修改方式是 注释 #define statvfs statfs这行

#ifdef __ANDROID__
// #define statvfs statfs
#endif


(3)其他编译错误

一般是下载某些库出错,保持网络畅通,重复执行

./compile.sh

即可。


4、修改了某些依赖库后的重新编译

一些库是允许修改的:

例如vlc的contrib目录下的ffmpeg库,并不会校验压缩包的MD5信息,

可以偷偷替换 ./vlc/contrib/tarballs 文件夹下对应的压缩包,并使用touch指令更新该压缩包的修改时间。

然后重新执行 ./compile.sh 即可(会检测到该类包的修改然后重新解压缩并且编译)。

另外一些库是带有MD5值校验的:

例如 nfs 库,

直接修改它的相应源码应该是可行的。


附:国内的安卓、Ubuntu镜像地址:

可选的一些地址:

Android SDK在线更新镜像服务器

大连东软信息学院镜像服务器地址:

http://mirrors.neusoft.edu.cn 端口:80

北京化工大学镜像服务器地址:

IPv4: http://ubuntu.buct.edu.cn/ 端口:80

IPv4: http://ubuntu.buct.cn/ 端口:80

IPv6: http://ubuntu.buct6.edu.cn/ 端口:80

上海GDG镜像服务器地址:

http://sdk.gdgshanghai.com 端口:8000

中国科学院开源协会镜像站地址:

IPV4/IPV6: http://mirrors.opencas.cn 端口:80

IPV4/IPV6: http://mirrors.opencas.org 端口:80

IPV4/IPV6: http://mirrors.opencas.ac.cn 端口:80

使用方法:

启动 Android SDK Manager ,打开主界面,依次选择『Tools』、『Options...』,弹出『Android SDK Manager - Settings』窗口;

Ubuntu15.10编译VLC Android(安卓)过程记录


Android镜像配置步骤

1.启动 Android SDK Manager ,打开主界面,依次选择「Tools」、「Options...」,弹出『Android SDK Manager - Settings』窗口;
2.在『Android SDK Manager - Settings』窗口中,在「HTTP Proxy Server」和「HTTP Proxy Port」输入框内填入mirrors.neusoft.edu.cn和80,并且选中「Force https://... sources to be fetched using http://...」复选框。设置完成后单击「Close」按钮关闭『Android SDK Manager - Settings』窗口返回到主界面;
3.依次选择「Packages」、「Reload」。
4.由于某些网络接入商进行了劫持,会弹出用户认证界面无法使用,和本镜像服务器配置无关。


本文永久更新地址:http://www.linuxdiyf.com/linux/18881.html