Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Ubuntu 12.04.4 LTS下linphone-android編譯記錄

Ubuntu 12.04.4 LTS下linphone-android編譯記錄

編輯:Android開發教程

操作系統:Ubuntu 12.04.4 LTS 32位

linphone-android版本:android:versionCode="2211"

准備工作:

1、首先安裝git用於獲取linphone-android源碼

ykx@ykx:~$ sudo apt-get install git

獲取linphone-android源碼只須使用git的基本功能,所以使用apt-get安裝就可以。

2、獲取linphone-android源碼

ykx@ykx:~/WorkSpace$ git clone git://git.linphone.org/linphone-android.git --recursive | tee git.log

注意需要加上“--recursive”參數,不然下不全,下載成功之後大概是360M不到,如果加上git的文件,大概是638M,各文件夾大小如下:

408K    ./tests

1.0M    ./sample

5.3M    ./res

352K    ./libs

248M    ./submodules

20K     ./patches

383M    ./.git

860K    ./src

204K    ./liblinphone_tester

16K     ./jni

638M    .

tee git.log表示我把git下載時輸出的信息存在了git.log文件中

3、依賴庫的安裝

linphone-android目錄下的README文件對編譯的環境和步驟有相關敘述,所以最好先閱讀下該文件,對編譯過程有個總體認識。下面是我的環境配置:

a、JDK 1.7.0_51

b、Android SDK r22.6-linux

c、Android NDK r9d-linux

以上三個google一下都有詳細的安裝教程,這裡就不在贅述了。只說一下我的環境變量的配置:

安裝完之後,我更改了/etc/environment和/etc/profile兩個文件,將三者的路徑都寫進去了,注意/etc/environment中最好不要用$JAVA_HOME這樣的引用變量,全部寫詳細的路徑。/etc/profile就無所謂了

還有就是要更改三者安裝路徑的訪問權限,不然編譯過程無訪問導致失敗。

例如更改jdk權限,操作如下:

ykx@ykx:/usr/src/jdk1.7.0_51$ chmod 777 * -R

表示將當前目錄下所有文件及文件夾極其子目錄及子文件的權限改為777(讀/寫/運行)。

更改sdk和ndk的訪問權限操作類似。

d、安裝yasm, nasm, curl, ant和autotools(autoconf, automake, aclocal, libtoolize, pkgconfig)

這寫依賴使用apt-get install自動就可以,注意autotools的安裝:

root@ykx:/home/ykx# apt-get install autoconf

root@ykx:/home/ykx# apt-get install automake

root@ykx:/home/ykx# apt-get install libtool

root@ykx:/home/ykx# apt-get install pkg-config

aclocal會在安裝automake時自動安裝。

README文件中提到的依賴就是這些,可以使用which命令來查看是否安裝成功。

e、做完上面這些之後,按照README的步驟,我就開始make了。和許多事情一樣,life is a bitch,當你以為將要成功的時候,她總會給你開個玩笑。

我失敗了。

查看make的輸出,得到找不到LWP,安上LWP,然後執行make clean命令,再make,又是失敗,這次提示找不到LWP::Protocol::https,在把它安上,重新clean和make,done!

說一下這個錯誤的解決過程,對熟悉linux和perl的人來說,這個問題就不叫問題,但我是小白,所以還是記錄一下。

LWP是perl的一個模塊,具體功能我也不清楚,有興趣的人自行百度。

root@ykx:/home/ykx# perl -MCPAN -eshell

接下來需要配置一些東西,我都是一路回車下來的。之後進入cpan命令行模式

cpan> install Bundle::LWP             ;安裝LWP

cpan> install LWP::Protocol::https    ;安裝LWP::Protocol::https

完成後exit就可以了。

4、最後make就可以了,生成的.so文件會放在libs目錄下。linphone-android是通過ant來管理和生成apk文件的,如果你需要在eclipse下開發,需要將源碼、庫文件和相應的配置文件取出,另建一個android工程。我就不詳細說了,把我的classpath文件貼上。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src" />
    <classpathentry kind="src" path="submodules/linphone/coreapi/help/java" />
    <classpathentry excluding="org/linphone/mediastream/MediastreamerActivity.java" kind="src" path="submodules/linphone/mediastreamer2/java/src" />
    <classpathentry kind="src" path="submodules/externals/axmlrpc/src/main/java" />
    <classpathentry kind="src" path="submodules/linphone/java/common" />
    <classpathentry kind="src" path="submodules/linphone/java/impl" />
    <classpathentry kind="src" path="submodules/linphone/java/j2se" />
    <classpathentry kind="src" path="gen" />
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK" />
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES" />
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES" />
    <classpathentry kind="output" path="bin/classes" />
</classpath>

最後提一點,最初在ubuntu下make時出錯,提示bin/bash^M: 壞的解釋器: 沒有那個文件或目錄

這是因為一開始我是在windows下的linphone源碼,而且查看過一些文件,而windows和linux的換行符不同,相當於隱式地修改了文件,導致運行出錯。

查看本欄目更多精彩內容:http://www.bianceng.cn/OS/extra/

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved