作者:wainiwann
出处:http://www.cnblogs.com/wainiwann/

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
 

摘要:本文主要介绍vlc-android在ubuntu下编译的过程。

最近研究了下 vlc-android 的编译,网上一搜资料确实不少,不过大部分都是千遍一律(也不否认有非常详细的)。不能说这些都毫无价值,多少也能给编译vlc带来一些线索。

编译环境使用的是64位ubuntu12.04 源码用的vlc-android最新的源码。整个编译过程耗时将近一天,因为网络原因需要下载很多东西,整个vlc源码达到可编译条件的时候总大小将近2个G。

还有下载很多其他的编译需要的资源。最后编译成功,生成了so库和相应的apk,并且装在手机上可以播放流媒体。

下面就详细总结一下此次编译vlc-android的整个流程,以备以后所需,以及让更多需要它的人少走些弯路。

------------------------------------------------------------------------------------------我是黄金分割--------------------------------------------------------------------------------

一 编译环境搭建:

1.下载配置NDK环境:

本次使用的ndk是 “ android-ndk-r9d-linux-x86_64.tar.bz2 ”

下载地址:http://developer.android.com/tools/sdk/ndk/index.html#Installing (有时会打不开)

对于NDK环境搭建可以参考之前的文章ffmpeg2.2编译:http://www.cnblogs.com/wainiwann/p/3785485.html

里面包含了解码目录,以及NDK环境变量的配置写的非常详细。

2.下载配置SDK环境:

编译的时候需要SDK环境并且需要下载的SDK目录下需要有“platform-tools”这路目录下的adb.exe等工具。所以下载的SDK需要注意下!

这里下载SDK最好不要下载类似 “ android-sdk_r20-linux.tar ” 或者其他版本因为这些版本是不包含 "platform-tools" 这个文件目录的!!!

我这里下载的是包含eclipse 的ADT版本为 “ adt-bundle-linux-x86_64-20131030.zip ” 。

下载地址:http://pan.baidu.com/share/link?shareid=2608460318&uk=2099951531

然后在home目录下新建一个“develop”的目录 (之前ndk也是放到这个目录里的)。再在develop目录下新建目录"android-sdk-linux"目录(建目录这一步自己可以随意)。

然后把 adt-bundle-linux-x86_64-20131030.zip 解压出来,把里面的sdk整个目录下的文件全拷贝到之前的develop目录下的android-sdk-linux目录中。

3.下载配置JDK环境:

如果单纯想编译出vlc的so库,JDK可以不用安装和配置。但如果想编译出vlc的APK那这一步是不能少的!

此处用的jdk是:“ jdk-6u45-linux-x64.bin ”

下载地址:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html

点击Accept License Agreement 选择需要下载jdk。

这里说一下关于JDK的安装:

1)把下载的  jdk-6u45-linux-x64.bin 拷贝到/home目录下新建一个名字为“jdk”的目录;

2)终端root账户进入上面的jdk目录给 jdk-6u45-linux-x64.bin 增加权限:

# chmod 777 ./jdk-6u45-linux-x64.bin

3)执行安装命令:

# ./jdk-6u45-linux-x64.bin

4.配置NDK、SDK、JDK环境变量:

1)终端root账户命令:

# gedit ~/.bashrc

待弹出编辑页面在页面末尾添加如下几行(具体目录依自己而定):

export NDK=/home/song/develop/android-ndk-r9d
export ANDROID_SDK=/home/song/develop/android-sdk-linux
export ANDROID_NDK=/home/song/develop/android-ndk-r9d
export ANDROID_ABI=armeabi-v7a
export NO_NEON=1
export JAVA_HOME=/home/song/jdk/jdk1.6.0_45
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

2)然后保存,使其生效 终端命令行:

# source ~/.bashrc

3)检测环境变量配置是否正确:

ndk可以进入ndk下sample目录里的hello-jni进行$NDK/ndk-build 命令编译。JDK可以在root终端命令下(非root需要在编辑~/.bashrc)执行:java -version 如果显示JDK相关的

版本号则为安装正确。

二 编译前需要下载安装的工具:

0.安装编译vlc依赖的其他库:

$ sudo apt-get build-dep vlc

1.下载安装 git 工具:

# apt-get install git

2.下载安装 ant工具:

# apt-get install ant

注:此处下载安装ant 会一并下载安装 openJDK,但不影响编译。

3.下载安装一下工具:

# apt-get install wget

# apt-get install autoconf

# apt-get install libtool

# apt-get install subversion

注:如果有的安装不上不用在意。

4.下载安装需要32位编译的东西:

如果不需要编译生成apk可以不做此操作。

# apt-get update
# apt-get install ia32-libs

三 编译vlc-android :

1)在home目录下新建一个目录这里取名“vlc-code”目录。然后root用户终端命令:

# git clone git://git.videolan.org/vlc-ports/android.git

这里下载会很快下载之后进入到该目录,终端命令:

# cd android

2)执行编译操作:

# sh ./compile.sh

下面将会进入漫长的下载vlc编译所需要的资源包。。。。

3)下载中途可能会出现数次错误:

由于一些资源包可能请求下载的时候超时等都会出现编译失败,此时可以查看失败信息。一般

失败信息上写着那条资源包失败,以及下载该资源的下载地址,此时可以换一个网络或者换一个电脑复制那条下载失败的资源包下载地址,自己手动去下载。

下载之后手动拷贝到该目录:/vlc-code/android/vlc/contrib/tarballs/ 目录下。

然后重新在终端执行编译操作:

# sh ./compile.sh

注:下载过程中可能需要重复步骤3数次。

最后资源包下载完全之后可以 查看 /vlc-code/android/vlc/contrib/tarballs/ 目录 下大概有40个如下资源包:

4)如果资源下载结束最后编译出现

“BUILD SUCESSFUL”

就表示编译成功了,如果没有出现该提示,则需要重复编译操作:

# sh ./compile.sh

注:在vlc编译过程当中始终是该命令。

如果编译当中出现其他错误,可以查看错误信息,然后在网上寻找答案(如果上述环境搭建,下载安装等等都正确的话,应该是可以编译成功的)。

5)编译成功之后:

成功之后会在

/vlc-code/android/vlc-android/libs/ 目录下看到编译好的so库。

会在

/vlc-code/android/vlc-android/bin/ 目录下看到编译好的apk文件,这里可以直接安装在android手机上。

四 最后附上编译成功的截图:

---------------------------------------------------------------------------------------------------我是黄金分割------------------------------------------------------------------------------------------------------------------------------

完结:编译过程当中一定要有足够的耐心和自信!!!

作者:wainiwann
出处:http://www.cnblogs.com/wainiwann/

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
 

摘要:本文主要介绍vlc-android在ubuntu下编译的过程。

Ubuntu12.04编译vlc-android详细流程的更多相关文章

  1. 转:Ubuntu12.04编译VLC,在linux上运行

    Ubuntu12.04编译vlc2.1.0 1.编译环境 VM8.0.1 # gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAP ...

  2. Ubuntu12.04编译Android2.3.4

    Ubuntu12.04编译Android2.3.4 1.下载Ubuntuubuntu-12.04-dvd-i386.iso2.使用U盘安装,启动盘制作用unetbootin-windows-568工具 ...

  3. Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决

    昨晚在编译源码,make一段时间之后报错如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSE ...

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

    持续更新中... 最后一次修改于 2016-03-20 15:33:45 1.必要库的安装 除基本编译环境(gcc.g++等外),需要额外安装如下的库(用于下载必要的依赖文件) (1)JDK 推荐安装 ...

  5. ubuntu12 安装redis和phpRedisAdmin详细流程

    一.Ubuntu安装redis(redis默认端口6379) 方式一.直接下载源码,编译(redis可以编译源码之后直接运行,不需要安装) 1.1执行命令,从官网下载源码编译: $ wget http ...

  6. ubuntu12.04编译rtems doc目录

    我的rtem的版本是rtems-4.10.2:首先安装textinfo:sudo apt-get install texinfo 然后: cd rtems-4.10.2/doc../bootstrap ...

  7. Ubuntu12.04环境搭建遇到的问题和建议(一个)

    后的新公司需要在Ubuntu12.04在结构Android开发环境,在这个过程中,我们还是会遇到很多问题,这里记录.为了方便自己的未来,有人谁需要参考.从网络! 1. Q:在终端: sudo apt- ...

  8. ubuntu12.04下编译Linux tina 2.1/android经验

    用的是osboxes下的vdi. 编译Linux 1. 不能在root用户下操作 2. 执行 make kernel_menuconfig 报错,需要 apt-get install zlib1g z ...

  9. Android编译环境——ubuntu12.04上android2.3.4编译错误以及解决

    Android编译环境——ubuntu12.04上android2.3.4编译错误以及解决 分类: android应用开发2013-08-21 09:20 4222人阅读 评论(3) 收藏 举报 li ...

随机推荐

  1. UVA-10129 Play on Words (判断欧拉道路的存在性)

    题目大意:给出一系列单词,当某个单词的首字母和前一个单词的尾字母相同,则这两个单词能链接起来.给出一系列单词,问是否能够连起来. 题目分析:以单词的首尾字母为点,单词为边建立有向图,便是判断图中是否存 ...

  2. 旋转木马幻灯片切换效果JS源码详解

    首先,放上慕课网的课程链接,源码是在这个课程里分享出来的,https://www.imooc.com/learn/386. 文章适合学习过这个课程的同学,再看这篇文章,可能有更深入的理解.主要是对各种 ...

  3. 创建Vue.js对象:我的第一个Vue.js输出信息

    <!DOCTYPE html><html><head><meta charset=”utf-8″><title>Vue第一条信息</t ...

  4. Python3 运算符(八)

    什么是运算符? 举个简单的例子 4 +5 = 9 . 例子中,4 和 5 被称为操作数,"+" 称为运算符. Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 ...

  5. HDU 2807

    http://acm.hdu.edu.cn/showproblem.php?pid=2807 把矩阵相乘放在第二重循环,第三重循环只进行比较可以水过,优化的方法不懂 主要用这题练习floyd的写法 # ...

  6. 【maven】Maven打包后为何文件大小改变了

    项目中使用了X.509证书,用Maven打包后,测试时报错: java.security.cert.CertificateException: Could not parse certificate: ...

  7. python基于协程的网络库gevent、eventlet

    python网络库也有了基于协程的实现,比较著名的是 gevent.eventlet 它两之间的关系可以参照 Comparing gevent to eventlet, 本文主要简单介绍一下event ...

  8. /etc/fstab和/etc/mtab

    一./etc/fstab和/etc/mtab的区别 1./etc/fstab /etc/fstab是开机自动挂载的配置文件,在开机时起作用.相当于启动linux的时候,自动使用检查分区的fsck命令和 ...

  9. String.valueof;和String = ""+1;的区别

    关于字符串的+操作,单纯的String  s ="" +11;编译器会看做常量""和常量11的拼接操作,常量计算最快:String.valueOf会调用方法,速 ...

  10. hibernate enum映射详解

    hibernate enum映射详解 在这里介绍注解的形式,如果想要了解XML配置的方式,可以自行查找相关资料. 例如以下Entity @Entity @Table(name = "t_us ...