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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章