vlc androidコードコンパイル


システム:ubuntu 12.04コード:git://git.videolan.org/vlc-ports/android.gitコードバージョン:375646994 d 0602年初頭に3ヶ月間vlc androidをしました.昨日vlc androidのbetaバージョンがリリースされたのを見て、効果を見てコンパイルすることにしました.自分の今回のコンパイル過程を記録して、友达の参考にします.次のファイルパスは、正しいパスに置き換えます.1.ubuntu android開発環境を構築するには、自分の好きなディレクトリを探してjdk、SDK、NDK、ANT 1.1インストールjdk参考私が転送した『Ubuntu 11.10インストールjdk-6 u 30-linux-i 586.bin』1.2インストールSDKダウンロードSDKをインストールする:http://developer.android.com/sdk/index.htmlSDKをディレクトリに解凍します.
$ sudo tar -xvf android-sdk_r20-linux.tgz

1.3 NDKのインストール
ダウンロード:http://developer.android.com/tools/sdk/ndk/index.html
NDKをディレクトリに解凍します.
$ sudo bzip2 -d android-ndk-r5b-linux-x86.tar.bz2
$ sudo tar -xvf android-ndk-r5b-linux-x86.tar

1.4 ANT取付
ANTをダウンロード:http://mirror.bit.edu.cn/apache//ant/binaries/apache-ant-1.8.4-bin.tar.gz
解凍:
$ sudo tar -xvf apache-ant-1.8.4-bin.tar.gz
ant環境変数を設定します.
$ sudo vim /etc/profile
ファイルの最後に追加:
export ANT_HOME=/home/workenv/apache-ant-1.8.4
PATH=$PATH:/home/workenv/apache-ant-1.8.4
設定が有効になります.
$ source /etc/profile
インストールに成功したかどうかを確認します.
$ ant -version
は次のように表示されます.
Apache Ant(TM) version 1.8.4 compiled on May 22 2012

1.5 eclipseのインストール:
$ sudo cp eclipse-jee-indigo-SR1-linux-gtk.tar.gz ../workenv/
$ cd ../workenv/
$ sudo gzip -d eclipse-jee-indigo-SR1-linux-gtk.tar.gz
$ sudo tar -xvf eclipse-jee-indigo-SR1-linux-gtk.tar
$ sudo chmod 777 -R eclipse/
$ rm eclipse-jee-indigo-SR1-linux-gtk.tar

1.6 ADTカードのインストール
$ ./eclips
Eclipse起動「Help」>「InstallNewSoftware...」
Add Name:ADT Locationを選択:http://dl-ssl.google.com/Android/eclipse/
選択:Android DDMSとAndroid DevelopmentTools
1.7 Android SDK APIの更新
$ ./eclips
Windows > Preferences > Android > SDK Location
SDKのパスを入力します.
Windows > Android SDK Manger
2.2と4.1を選択
Install
2.vlc依存の他のライブラリのインストール:
$ sudo apt-get build-dep vlc

3.コンパイル
3.1環境変数の設定
$ export ANDROID_SDK=/home/workenv/android-sdk-linux
$ export ANDROID_NDK=/home/workenv/android-ndk-r8
$ export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools    ARMv7      NEON   :
$ export ANDROID_ABI=armeabi-v7a
ARMv 7以上でNEONに対応していない機器の場合:
$ export ANDROID_ABI=armeabi-v7a
$ export NO_NEON=1
cpuタイプとNEONがサポートされているかどうかを確認するにはどうすればいいですか?携帯電話やpadの下にあるこのファイル/proc/cpuinfoを開くと、次のような内容が表示されます.
Processor           : ARMv7 Processor rev 2 (v7l)
BogoMIPS            : 998.36
Features            : swp half thumb fastmult vfp edsp neon vfpv3
CPU implementer     : 0x41
CPU architecture    : 7
CPU variant         : 0x3
CPU part            : 0xc08
CPU revision        : 2

Hardware            : P1Lite Samsung Board
Revision            : 0004
Serial              : 0000000000000000
ここでARMv 7に着いてneonを支持することができて、Featuresの中でneonがあって、neonを支持することを表して、さもなくば支持しません.
3.2コードの取得
$ git clone git://git.videolan.org/vlc-ports/android.git
$ cd android

3.3コンパイル
$ sh compile.sh
compile.shの実行過程は、全体のコンパイル過程であり、大まかな過程は以下の通りである.
a.vlcコードのダウンロード:compile.shの42行git clonegit://git.videolan.org/vlc.git vlc.
b.out vlcコードをe 75 d 2024にcheckするこのバージョン:compile.shの44行git checkout-B android${TESTED_HASH}
c.必要なサードパーティ製ライブラリをすべてコンパイルするには、ダウンロードしてからコンパイルする必要があります.このプロセスには時間がかかります.ダウンロードに失敗する可能性もあります.一部のライブラリをダウンロードできない場合は、手動でダウンロードし、このディレクトリの下に置けばいいです.android/vlc/contrib/tarballsです.
d.vlcのConfiguring.
e.vlcのコンパイル.
f.android部分コードをコンパイルしvlc soライブラリにリンクする.
4コンパイル中に発生した問題の解決
4.1エラーC compiler cannot create executables
configure: error: C compiler cannot create executables
See `config.log' for more details.
config.logを開きます.
$ vim ./vlc/contrib/android/a52dec/config.log
このような1行のプロンプトエラーを検出しました.
/home/workenv/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: crtbegin_dynamic.o: No such file: No such file or directory
crtbegin_dynamic.o見つからない、NDKディレクトリの下でcrtbeginを探しますdynamic.o:
$ find -name crtbegin_dynamic.o
は多くのものを見つけました.
./platforms/android-14/arch-x86/usr/lib/crtbegin_dynamic.o
./platforms/android-14/arch-mips/usr/lib/crtbegin_dynamic.o
./platforms/android-14/arch-arm/usr/lib/crtbegin_dynamic.o
./platforms/android-3/arch-arm/usr/lib/crtbegin_dynamic.o
./platforms/android-8/arch-arm/usr/lib/crtbegin_dynamic.o
./platforms/android-5/arch-arm/usr/lib/crtbegin_dynamic.o
./platforms/android-9/arch-x86/usr/lib/crtbegin_dynamic.o
./platforms/android-9/arch-mips/usr/lib/crtbegin_dynamic.o
./platforms/android-9/arch-arm/usr/lib/crtbegin_dynamic.o
./platforms/android-4/arch-arm/usr/lib/crtbegin_dynamic.o
アクセス権の確認
$ ll ./platforms/android-14/arch-x86/usr/lib/crtbegin_dynamic.o
一般ユーザに読み取り権限がないことが判明したのは、そのためである.ndk内のファイル権限を変更するには、次の手順に従います.
$ sudo chmod 755 -R android-ndk-r8
再コンパイル:
$ sh compile.sh
はこのエラーを提示していません.
4.2 antエラー
/bin/sh: 1: ant: Permission denied
$ ant -version
antがインストールされていないことを示すメッセージが表示されます.すでにインストールされています.環境を再設定すればOKです.
$ source /etc/profile

4.3
BUILD FAILED
/home/workenv/android-sdk-linux/tools/ant/build.xml:518: Unable to resolve project target 'android-15'
$ vim vlc-android/project.properties
は15を16に変更しました.さっきsdk apiをインストールしたとき、8と16しかインストールしていなかったからです.
$ vim vlc-android/AndroidManifest.xml
android:targetSdkVarsion="15"をandroid:targetSdkVarsion="16"に変更
ついに:BUILD SUCCESSFUL
後記:
これまで何度もコンパイルしたことがあるので、今回のコンパイルは順調です.vlcのコードコンパイルエラーの問題に遭遇した友人がいる場合は、権限、git checkout、git amパッチの問題になる可能性があります.その後、vlc androidのコードアーキテクチャに関することをまとめ、長期にわたってvlcを学び、注目し、皆さんと交流したいと思います.