天天看點

ubuntu16.04下編譯linphone源碼

基于公司對sip通訊的需要,今天初步研究了sip的一個開源實作linphone。從下載下傳到編譯成功差不多用了一天的時間。我是昨天晚上git下載下傳挂了一夜。。。今天到公司之後抱着試試看的态度,驚喜的發現已經下載下傳成功了,下面就是一天的編譯。本着學習和共享的态度記錄下本次的研究曆程,也希望能給有需要的coder帶來幫助~

第一步:下載下傳源碼

鑒于下載下傳的坑爹,接觸過的應該都知道。。。無限的下載下傳失敗。我是第二次下載下傳成功的,原因可能是我出牆了。。。據說不出牆成功率很低、下面我貢獻上我下載下傳後的百度雲盤連結...共廣大同胞們享用。http://pan.baidu.com/s/1dEZnZm5  過期了的話私聊我好了。。。

第二步:搭建環境

1 安裝Linux系統,本次采用ubuntu16.04。

2 安裝jdk、sdk和ndk。其中jdk采用的是oracle1.8。

3 配置環境變量:進入指令行:sudo gedit /etc/profile 回車會提示輸入密碼,輸入即可打開配置檔案,在檔案末尾添加配置内容如下:

#set java environment

export JAVA_HOME=/usr/lib/jvm/java-8-oracle

export JRE_HOME=${JAVA_HOME}/jre  

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  

export PATH=${JAVA_HOME}/bin:$PATH  

# Android SDK

export ANDROID_SDK=/home/liwy/Android/Sdk

export PATH=$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools:$PATH

#Android NDK

export ANDROID_NDK=/home/liwy/Android/ndk/

export PATH=$ANDROID_NDK:$PATH

其中jdk、sdk和ndk的路徑一定要記得換成自己的。配置好後儲存退出。然後 sudo gedit ~/.profile 繼續配置,在檔案末尾添加NDK的路徑,内容如下:

export ANDROID_NDK=/home/liwy/Android/ndk/

export PATH=$ANDROID_NDK:$PATH

我之前沒有在這個~/.profile 檔案裡配置NDK的路徑,然後就導緻執行下一步指令的時候一直提示“找不到Android NDK Version”

4 配置linux編譯環境,安裝交叉編譯工具

在源碼的的根目錄的README檔案裡有環境要求,一定要看,因為源碼的版本不同,會導緻其所需要的環境也不盡相同,我也是跟着大神們的部落格弄了半天死活不通,最後沒辦法了走的這一步,看了之後才發現,原來這裡才是王道

ubuntu16.04下編譯linphone源碼

,切記,一定要看。

所需要下載下傳的東西盡在編譯介紹的第二點裡内容如下:

install yasm, nasm, ant, python, intltoolize, cmake and vim-common

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

标紅的都是需要下載下傳的,下載下傳指令(拿yasm舉例子)如下:sudo apt-get instal yasm

第三步:開始編譯

1 環境搭建配置好後,指令行進入源碼的根目錄。執行指令:. /perpare.py  配置建構和生産Makefile。執行成功的話即會生成Makefile檔案,這個檔案用于下一步的正式編譯。當然了,有這Makefile檔案的就可以直接進行下一步了

2 開始編譯。指令行輸入:make

3 等待編譯。。。我這台機器總共編譯了31分鐘。如下圖所示1:

ubuntu16.04下編譯linphone源碼

總結:編譯其實沒什麼,就是等。整個過程最主要就是源碼的下載下傳和環境的配置。這兩步如果沒什麼問題的話,編譯就不在話下了。編譯成功了之後即可在根目錄的Libs檔案夾下看到linphone項目所需要的各種so庫,也可以在bin檔案夾下看到編譯好的apk檔案。ok,就這麼多,有問題的需要大家多多交流~