Android Linphone源碼編譯
一、下載源碼
打開命令終端輸入:git clone git://git.linphone.org/linphone-android.git --recursive
注意:先下載源碼,然後看源碼裏根目錄的README.md,不同版本對環境的要求不一樣,按照readme來配環境,不要以網上的說明來配有些版本是不一樣的,可以參考這個網址
https://blog.csdn.net/garfield38/article/details/53402623
二、搭建安卓環境(包括jdk,sdk,ndk)
安裝jdk
1、源碼包準備:
首先到官網下載jdk,http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,我下載jdk-8u161-linux-x64.tar.gz,下載到主目錄
2、解壓源碼包
通過終端在/usr/local目錄下新建java文件夾,命令行:
sudo mkdir /usr/local/java
然後將下載到壓縮包拷貝到java文件夾中,命令行:
進入jdk源碼包所在目錄
cp jdk-8u161-linux-x64.tar.gz /usr/local/java
然後進入java目錄,命令行:
cd /usr/local/java
解壓壓縮包,命令行:
sudo tar xvf jdk-8u161-linux-x64.tar.gz
然後可以把壓縮包刪除,命令行:
sudo rm jdk-8u161-linux-x64.tar.gz
3、設置jdk環境變量
這裏採用全局設置方法,它是是所有用戶的共用的環境變量
$sudo gedit ~/.bashrc
打開之後在末尾添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
請記住,在上述添加過程中,等號兩側不要加入空格,不然會出現“不是有效的標識符”,因爲source /etc/profile 時不能識別多餘到空格,會理解爲是路徑一部分。
然後保存。
4、檢驗是否安裝成功
在終端輸入如下命令
java -version
看看是否安裝成功
成功則顯示如下
可以參考這個網址https://www.linuxidc.com/Linux/2015-01/112030.htm
安裝sdk和ndk
這個安裝android studio 就有sdk和ndk了,下載AS的網址
http://www.androiddevtools.cn/
ndk不要下安裝包安裝,因爲sdk指定的ndk目錄是本身sdk所在目錄下的ndk-build裏,就算你下安裝包安裝也要放在這個目錄下,在環境裏配其他路徑也是不行的,目錄如下
Android studio裏安裝ndk如下圖
最後貼出我的環境配置
export JAVA_HOME=/usr/local/java/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export ANDROID_NDK=/home/howard/Android/Sdk/ndk-bundle
export PATH=$PATH:$ANDROID_NDK:$ANDROID_NDK/platforms
export ANDROID_HOME=~/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
三、下載所需要的軟件,這個看Readme有說明,以下是readme的要求
Install _yasm_, _nasm_ (For OpenH224 support only), _python_, _pkg_config_ and _cmake(>=3.7)_.
* On 64 bits linux systems you'll need the _ia32-libs_ package.
* With the latest Debian (multiarch), you need this:
* `dpkg --add-architecture i386`
* `aptitude update`
* `aptitude install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386`
操作如下
apt-get install yasm
apt-get install nasm
apt-get install python
apt-get install pkg_config
apt-get install cmake
apt-get install lib32ncurses5
apt-get install lib32z1
四、編譯時如果報cmake版本太低的話,安裝如下方法升級
1、sudo apt-get install build-essential //如果系統已安裝build-essential則不需要執行此步驟
2、wget http://www.cmake.org/files/v3.7/cmake-3.7.0.tar.gz
3、tar xf cmake-3.7.0.tar.gz
4、cd cmake-3.7.0
5、./configure
6、make
7、 執行 sudo make install
8、執行 sudo update-alternatives --install /usr/bin/cmake /usr/local/bin/cmake 1 --force
9、運行 cmake --version 查看版本號
五、編譯源碼
在項目目錄裏執行腳本./prepare.py 這個腳本它會檢查項目的完整性,如果有缺東西它會自動下載的
如果一切順利會生成一個makefile文個,這時開始編譯。命令行輸入:make
最後沒有問題的話如圖,有問題看打印自行解決
最後可以執行make liblinphone-android-sdk 這個是生成sdk的,編成功了但找不到sdk,算了,有接口代碼也行,在如下路徑第二個
最後編成的庫在如下路徑