持续更新中。。。

最后一次修改于 2016-03-20 15:33:45

1、必要库的安装

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

(1)JDK

推荐安装Oracle的JAVA SE,下载最新的版本即可,不推荐OpenJDK版本(容易出现一些包找不到的问题);

安装教程 例如 Ubuntu下安装JDK1.8;

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

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

sudo apt-get remove openjdk*

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

$ gedit ~/.bashrc
# 在该文件末尾加入以下内容(JAVA_HOME设置为JDK文件夹的路径)
export JAVA_HOME=/usr/local/jdk1..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} >/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)lua

configure: error: You need 32-bits luac when using using lua from contrib.

$ sudo apt-get install liblua5.2-0:i386 liblua5.2-0-dev:i386

$ file  vlc/contrib/arm-linux-androideabi/bin/luac

$ rm -f vlc/contrib/arm-linux-androideabi/bin/lua
$ rm -f vlc/contrib/arm-linux-androideabi/bin/luac $ ln -s /usr/bin/lua vlc/contrib/arm-linux-androideabi/bin/lua
$ ln -s /usr/bin/luac vlc/contrib/arm-linux-androideabi/bin/luac

(4)其他编译错误

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

./compile.sh

即可。

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

一些库是允许修改的:

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

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

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

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

例如 nfs 库,

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

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

可选的一些地址: http://blog.csdn.net/slow_liao/article/details/44358971

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.cn80,并且选中「Force https://... sources to be fetched using http://...」复选框。设置完成后单击「Close」按钮关闭『Android SDK Manager - Settings』窗口返回到主界面;
  3. 依次选择「Packages」「Reload」
  4. 由于某些网络接入商进行了劫持,会弹出用户认证界面无法使用,和本镜像服务器配置无关。

附:linux指令

ulimit:

http://my.oschina.net/u/219482/blog/313598

virtualBox 虚拟机中共享文件夹的设置

http://www.cnblogs.com/linjiqin/p/3615477.html

tar文件压缩指令

http://blog.csdn.net/dapao123456789/article/details/12889565

Ubuntu15.10 编译VLC Android(安卓)过程记录的更多相关文章

  1. Ubuntu18.10下安装Qt5.12过程记录

    首先你得先安装Ubuntu操作系统(我是在VMWare14中安装的Ubuntu18.10版本). 阿里镜像:https://opsx.alibaba.com/mirror 我这里下载的文件为:ubun ...

  2. 【转】vlc android 代码编译

    转自:http://blog.csdn.net/asircao/article/details/7734201 系统:ubuntu12.04代码:git://git.videolan.org/vlc- ...

  3. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

    原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...

  4. android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

      android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ...

  5. ubuntu15.10下编译安装wine1.8 rc4

    ubuntu15.10下编译安装wine1.8rc4 Wine (“Wine Is Not an Emulator” 的递归缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Li ...

  6. openWRT自学---自己编译的第一个 backfire10.03 版本的过程记录(转)

    基于 backfire10.03(从http://downloads.openwrt.org/backfire/10.03/ 中下砸的源码包backfire_10.03_source.tar.bz2: ...

  7. openWRT自学---自己编译的第一个 backfire10.03 版本的过程记录 --- 实际是由于下载了错误的backfire源码包导致的

    基于 backfire10.03(从http://downloads.openwrt.org/backfire/10.03/ 中下砸的源码包backfire_10.03_source.tar.bz2: ...

  8. Linux下编译VLC for Android源代码总结

    转:http://blog.chinaunix.net/uid-26611383-id-3678766.html 由于项目需要,需要一个在android平台能够支持RTSP协议的播放器,由于之前没有a ...

  9. 升级Windows 10 正式版过程记录与经验

    升级Windows 10 正式版过程记录与经验 [多图预警]共50张,约4.6MB 系统概要: 预装Windows 8.1中文版 64位 C盘Users 文件夹已经挪动到D盘,并在原处建立了符号链接. ...

随机推荐

  1. WINFORM跟随WPF窗体移动

    <Window x:Name="mainWindow1" x:Class="WpfApplication9.MainWindow"         xml ...

  2. Apache的prefork模式和worker模式(转)

    prefork模式这个多路处理模块(MPM)实现了一个非线程型的.预派生的web服务器,它的工作方式类似于Apache 1.3.它适合于没有线程安全库,需要避免线程兼容性问题的系统.它是要求将每个请求 ...

  3. 【iOS程序启动与运转】- RunLoop个人小结

    学习iOS开发一般都是从UI开始的,从只知道从IB拖控件,到知道怎么在方法里写代码,然后会显示什么样的视图,产生什么样的事件,等等.其实程序从启动开始,一直都是按照苹果封装好的代码运行着,暴露的一些属 ...

  4. Nginx/LVS/HAProxy负载均衡软件的优缺点详解(转)

    PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不 ...

  5. linux安装java环境

    在linux下安装JDK如下: 第一步:查看Linux自带的JDK是否已安装 (1)查看已经安装的jdk: [root@web-server ~]# rpm -qa|grep jdk ← 查看jdk的 ...

  6. String类概述

    (1)多个字符组成的一串数据.        其实它可以和字符数组进行相互转换.    (2)构造方法:        A:public String()        B:public String ...

  7. JDK+Tomcat+MyEclipse发布JSP项目——不能成功的问题

    JDK.Tomcat和MyEclipse安装完成后,在将web Project发布到Tomcat时出现金叹号,如图 原因:由于将Tomcat安装在C盘,所以需要启用管理员权限. 解决途径:用管理员身份 ...

  8. Ext.Net学习笔记08:Ext.Net中使用数据

    之前的七篇文章都是介绍Ext.Net较为基础的东西,今天的这一篇将介绍数据的一些用法,包括XTemplate绑定数据.Store(Modal.Proxy).ComboBox的用法等. XTemplat ...

  9. 关于block块使用的6点注意事项

    对于刚学习OC新伙伴,block块一直都是一个比较纠结.比较难懂的知识点,不过,在使用一段时间后,就会感觉很酸爽.block块的原理及使用我就不再赘述,网上有很多这方面的资料.我个人使用这么长时间以来 ...

  10. 节点插入--对比jQuery和JavaScript方法(一)

    二.插入元素: 1 <div> 2 <p>面朝大海,春暖花开</p> 3 </div> (一).jQuery方法 1.在节点内部插入: 方法 说明 ap ...