vlc编译

一、准备工作

    
安装所有必需的软件
    # apt-get install  apache-ant(or ant)  autoconf automake autopoint libtool  gawk(or nawk) gcc  g++  pkg-config cmake  patch subversion git
    ant工具在最后编译android源码生成apk文件会用到,所以需要安装。并且这里需要1.8及以上版本apt-get install ant1.8)。如果是手动安装ant,需要在环境变量中配置好antpath,或者在进行编译之前在命令行执行export PATH=$PATH:/xxx/ant/bin保证可以在执行编译的命令行中执行ant命令即可。
    
除了以上软件/工具之外,还有两个必须的工具,就是AndroidSDKNDKSDKNDK的安装方法就不再详述了,网上有很多安装方法的文章。里需要注意的是,需要安装android4.0及以上的一个SDKvlc- android0.0.5编译时需要4.0的界面元素。

当然了在Eclipse开发C/C++,可以安装 CDT


二、量配置

配置ANDROID_SDK
# export  ANDROID_SDK=/root/program/android-sdk-linuxpath自己的路径)
配置ANDROID_NDK
# export  ANDROID_NDK=/root/program/android-ndk-linux
配置PATH
# export  PATH=$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools

配置jdk(不在详述)
配置NEON信息(一般编译候,会编译NO_NEON和支持NEON包出来)
# export  NO_NEON=1
   
 如果设备不支持NEON请务必配置此;如果机器支持NEON,可以不用配置此NEON简单信息:根据基百科英文版ARM架构 中的介Cortex-A8架构的设备,均支持NEON,而在Cortex-A9架构的设备中,是可的。更多信息,参考:

http://www.arm.com/zh/products/processors/technologies/neon.php

http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29
配置ABI
# export ANDROID_ABI=armeabi-v7a


三、取源

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

源码下载完成后,需将源码直接放置在根目录下,否则后续的编译过程中会出现找不到库文件的错误。

四、编译

   
 完成后,如果没有进行前面的环境变量的配置,android文件compile.sh文件中相应的环境变量的路径信息修改为自己的pash,保存后sh compile.sh始自动编译

编译过程中会下vlc-android需要的依包,此次如果遇到下,可以重新命令。

 

compile.sh程,就是整个的编译过程,大致程如下:
a.
 vlccompile.sh42 git clone git://git.videolan.org/vlc.git vlc
b.
 check out vlce75d2024个版本:compile.sh44 git checkout -B android   

${TESTED_HASH}
c. 编译所有需要的第三方,先下编译程需要很长时间可能下不成

功,如果无法下某些,就手下来,并放到个目下即可:

android/vlc/contrib/tarballs
d. vlc
Configuring
e. vlc
编译
f.
 编译android部分代vlc so

 

附:编译过程中可能遇到的问题

1checking host system type... Invalid configuration `arm-linux-androideabi': system `androideabi' not recognized
configure: error: /bin/bash autotools/config.sub arm-linux-androideabi failed

解决法:到http://git.savannah.gnu.org /gitweb/?p=config.git;a=tree最新的包并解得到config.guessconfig.sub两个文件,将此两个文件拷/usr/share/misc下覆盖,重新编译命令。

 

2jni/libvlcjni.c: In function 'read_track_info_internal':

    jni/libvlcjni.c:797:57: error: 'libvlc_media_track_info_t' has no member named 'psz_language'

    jni/libvlcjni.c:803:69: error: 'struct ' has no member named 'f_frame_rate'

解决法:找到文件android/vlc-android/jni /libvlcjni.c,并将两行注掉即可,然后重新编译命令。

 

3 BUILD FAILED
/androidApp/android-sdk-linux/tools/ant/build.xml:569: The following error occurred while executing this line:
/androidApp/android-sdk-linux/tools/ant/build.xml:517: Unable to resolve project target 'android-16'

解决法:里根据自己所安装的SDK行更改android/vlc- android/project.properties android/java-libs/SlidingMenu/project.properties, android/java-libs/ActionBarSherlock/project.properties文件中的 android-x,但是vlc-android0.0.5版本的一定是4.0及以上版本(0.0.5版本的界面需要4.0及以上的特性)所以里一定是14及以上,否则还报错error: Error retrieving parent for item: No resource found that matches the given name'android:Widget.Holo.ActionBar'.

编译时只是里需要4.0个包的界面特性,但是不影响最生成的APK的运行目(只要不4.0及以上的API),比如我里在AndroidManifest.xml中可以

 

重新编译命令。

 

4Eclipse注意除了vlc-android工程外需要入另外两个依的工程即android/java-libs下的SlidingMenuActionBarSherlock两个工程,否者会报错


   
 如果编译过程中出其它错误根据错误提示安装对应的工具(或者在编译之前就把第一提到的工具全部安装好),部分错误也可参考

http://blog.chinaunix.net/uid-25885064-id-3357019.html
   
 最后提示BUILD SUCESSFUL,编译成功了,在android/vlc-android/bin下会生成一个apk文件,可以直接拿来安装。如果想自己整界面部分,或者添加、修改其它功能,可以直接把eclipse开发

 

参考文献:http://wiki.videolan.org /AndroidCompile

你可能感兴趣的:(vlc编译)