红联Linux门户
Linux帮助

Linphone Android在Linux下编译运行

发布时间:2016-12-01 09:47:30来源:blog.csdn.net/garfield38作者:麻瓜_
linphone是一款跨平台的给予SIP协议网络电话开源框架支持Android、iOS、Windows等平台。
要使用Android框架,需要下载官方源项目后编译才可导入开发工具使用。
编译使用的是Linux环境 如果你不熟悉LInux操作,建议你多搜索,然后尽量保持跟我同样的软件环境版本,不然碰到问题后你很难解决
 
所需工具:
1.Ubuntu 16.04
2.Linux Android开发环境(JDK8、SDK、NDK)
 
第一步、下载LInphone-Android源码到LInux中
官方将项目托管在Git中 所以我们需要在Linux中安装git
git官网下载地址:https://git-scm.com/download/linux(可看官网具体不再细述了)
在下载git之前建议将系统的软件源切换到国内服务器(我用的是阿里云的)具体更换方法自行搜索,这里不在细述
git装方法很简单(Ubuntu):apt-get
 install git 
(其他平台LInux系统 去点击上面连接去官网看说明)
git安装完成后获取源码:
linphone官网连接:http://www.linphone.org
源码地址可到官网查看
这里的源码git地址为:git clone git://git.linphone.org/linphone-android.git --recursive
注意上面的--recursive
一定不要漏掉不然会下载不全
好了现在开始下载linphone-android源码了
打开命令终端输入:git
clone git://git.linphone.org/linphone-android.git --recursive
Linphone Android在Linux下编译运行
这时候git已经开始下载源码了,但是可以发现下载速度非常慢!(一般100KB/s 网络差的话
 几KB/S)整个项目下载下来有300M多这种速度要下载到猴年马月,如果你下载速度很快没什么问题你可以跳过这一段。
所以这里建议你在网络好的环境下下载。还有之所以这么慢主要因为源码托管的服务器在国外,所以能访问已经是幸运的了。
我用的是 shadowsocks-Qt5+proxychains下载的在使用shadowsocks时你需要有账号密码下面有链接,有条件的可以购买一个,程序员必备,很好用可以多终端同时使用、手机、电脑 速度还可以。
shadowsocks-Qt5+proxychains 安装即使用请自行搜索,这里不再细述
需要Shadowsocks账号的点击这里:http://my.yizhihongxing.com/aff.php?aff=3311
Linphone Android在Linux下编译运行
下载速度会快很多比较稳定 这取决于你的网络环境。
当然如果你不愿意花那个钱你可以使用备用的 linphone-android
 在github中的地址(是不是官方的不清楚可能是哪位网友上传的),下载的源码应该跟官方是一样的 gitbub的源码没编译过。
GitHub地址:https://github.com/BelledonneCommunications/linphone-android
打开GitHub地址 点击 “Clone or download”
按钮 复制里面的链接
使用方法:将刚才的命令里的地址替换我们在github复制的链接就OK了 下载速度会比官方地址改善很多
git clone https://github.com/BelledonneCommunications/linphone-android.git
 --recursive
下载中出现问题看这里:
我们下载时可能下载一半就中断掉了,尽管我们下载或者使用GitHub下载地址
还是一样会中断。
报这样的错误:
fatal: The remote end hung up unexpectedly
fatal: 过早的文件结束符(EOF)
fatal: index-pack failed
fatal: 无法克隆 'git://git.linphone.org/belle-sip.git' 到子模组路径 '/home/debug/linphone-android/submodules/belle-sip'
Linphone Android在Linux下编译运行
碰到上面的错误可能是由于网络环境不好再加上项目比较大,不过不用担心
这里可以不管他,照着我下面的步骤走就没问题。
 
第二步、搭建编译Linphone-Android项目的环境
当你下载完成后或者下载一半时中断了你当前目录下会多出一个文件夹 博主的文件夹名为:linphone-android
1.进入该目录:cd linphone-android/
2.阅读里面的README文件(下面贴出文件主要内容):vi README
里面说明的是编译时需要做的事:
0.搭建 Android Sdk 环境
(Linux 搭建 sdk环境请自行百度,需要注意的是 搭建sdk环境需要事先搭建Java环境 而Ubuntu已经自带openjdk了
但是博主不建议你使用openjdk,
建议你去下载官网下载jdk来搭建环境
还有就是sdk必须下载)
1.搭建Android ndk 环境 (ndk搭建自行搜索,但请注意README说明有指定版本我这里是download the Android ndk (version r11c or 12b) )
2.安装编译时所需的软件
3.在项目目录里执行脚本./prepare.py
4.执行make命令 编译项目
其他的可选步骤
README文件部分内容
0) download the Android sdk (API 23 at least) with platform-tools and tools updated to latest revision, then add both 'tools' and 'platform-tools' folders in your path.
1) download the Android ndk (version r11c or 12b) from google and add it to your path (no symlink !!!).
2) 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
3) run `./prepare.py` in the top level directory. This will configure the build and generate a Makefile in the top level directory.
Some options can be passed to choose what you want to include in the build and the platforms for which you want to build. Use `./prepare.py --help` to see what these options are.
4) run the Makefile script in the top level directory.
$ make
5) (Optional) To install the generated apk into a plugged device, run
安装编译时所需的软件:
原文:
2) 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
我们需要安装:yasmnasmantpythonintltoolize cmakevim-common
如果是64位的操作系统还需要安装ia32-libs
上面这段代码,如下:
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
大体意思是如果是Debian系统要需要执行下面这里命令或者安装下面那些软件,因为我用的是Ubuntu所直接忽略
yasm:apt-get
install yasm 
(很顺利没什么问题)
nasm:
apt-get install nasm (很顺利没什么问题)
ant:
apt-get install ant (很顺利没什么问题)
python:
apt-get install python (系统已经事先装好了,所以很顺利没什么问题)
intltoolize:apt-get
install intltool(有些软件在不同平台命名不同你可能会遇到找不到软件包等错误,所以我这里改为intltool,而不是intltoolize)
cmake:apt-get
install cmake (很顺利没什么问题)
vim-common:
apt-get install vim-common (很顺利没什么问题)
32位兼容包
ia32-libs:apt-get installia32-libs(提示我说该软件包被抛弃了,但是被 lib32ncurses5 lib32z1取代了,我直接把这两个都安装了 )
apt-get install lib32ncurses5
apt-get install lib32z1
安装完成后编译所需的软件已经安装完毕了!如果你出现安装错误请自行搜索,可能是该软件在你的平台的安装方式不同或者软件名称不一样比如上面的intltoolize
在项目目录里执行脚本./prepare.py
看文档我不是很懂执行这个脚本是做什么的,不过有一点执行这个脚本它会检查项目的完整性这也就是为什么我们在git源码的时候中断可以不理睬并忽略那个错误的原因。
进入项目根目录并执行./prepare.py 博主这里报错了错误如下:
ERROR:root:Could not find prepare module: 'module' object has no attribute 'Target', probably missing submodules/cmake-builder? Try running:git submodule sync && git submodule update --init --recursive
意思:大体的意思是缺少某些模块或组件 可以尝试执行git submodule
sync 和 git submodule update --init --recursive 
我们逐次执行命令:git
submodule sync 和 git submodule update --init --recursive 
执行git
submodule update --init --recursive的时候它会下载缺少的文件(可能没有进度提醒不过不用担心)所以我们不用担心之前git的时候下载中断了,其实这里大概就是中断续传把!如果我们执行git submodule update --init --recursive又出现中断的现象我们可以不断的执行git
submodule update --init --recursive 这个命令直到下载完成为止---------
下载完成后我们再继续执行./prepare.py
命令这里没有报错误了而是一直滚屏,等滚屏结束时我们这一步就走完了 OK!
执行Makefile命令
编译项目
走完上面所有步骤后就可以开始编译了,在根目录执行命令make 开始执行编译
如果编译中没有什么错误的时候经过几分钟的滚屏后就编译完成了,大功告成!
到这里整个项目已经编译完成了,整个编译过程其实并不难主要问题是在git源码的时候饶了不少弯路。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/26468.html