基于公司对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文件里有环境要求,一定要看,因为源码的版本不同,会导致其所需要的环境也不尽相同,我也是跟着大神们的文章弄了半天死活不通,最后没办法了走的这一步,看了之后才发现,原来这里才是王道,切记,一定要看。
所需要下载的东西尽在编译介绍的第二点里内容如下:
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
sudo apt-get instal yasm
第三步:开始编译
1,环境搭建配置好后,命令行进入源码的根目录。执行命令:. /perpare.py 配置构建和生产Makefile。执行成功的话即会生成Makefile文件,这个文件用于下一步的正式编译。当然了,有这Makefile文件的就可以直接进行下一步了
2,开始编译。命令行输入:make
3,等待编译。我这台机器总共编译了31分钟。如下图所示:
总结:编译其实没什么,就是等。整个过程最主要就是源码的下载和环境的配置。这两步如果没什么问题的话,编译就不在话下了。编译成功了之后即可在根目录的Libs文件夹下看到linphone项目所需要的各种so库,也可以在bin文件夹下看到编译好的apk文件。ok,就这么多,有问题的需要大家多多交流。