Linphone Android 在Linux 下编译运行

来源:互联网 发布:asp.net源码下载 编辑:程序博客网 时间:2024/06/05 00:15


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


这时候git已经开始下载源码了,但是可以发现下载速度非常慢!(一般100KB/s 网络差的话 几KB/S)整个项目下载下来有300M多这种速度要下载到猴年马月,如果你下载速度很快没什么问题你可以跳过这一段。

所以这里建议你在网络好的环境下下载。还有之所以这么慢主要因为源码托管的服务器在国外所以能访问已经是幸运的了因为你懂得 看不到摸得到的墙, 所有这里博主建议你可以翻墙后下载速度会快很多。

博主用的是 shadowsocks-Qt5+proxychains翻墙下载的在使用shadowsocks时你需要有账号密码下面有链接,有条件的可以购买一个 程序员必备 很好用可以多终端同时使用、手机、电脑 速度还可以。

shadowsocks-Qt5+proxychains 安装即使用请自行百度这里不再细述

需要Shadowsocks账号的点击这里:http://my.yizhihongxing.com/aff.php?aff=3311

下载速度会快很多比较稳定 这取决于你的网络环境


当然如果你不愿意花那个钱翻墙你可以使用备用的 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项目的环境

当你下载完成后或者下载一半时中断了你当前目录下会多出一个文件夹 博主的文件夹名为: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

上面绿色部分不是很懂 大体意思是如果是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源码的时候饶了不少弯路当时出现中断的错误搞了半天还有就是我们公司网络的环境中用 5~10KB/S 这样的速度下载了半天 最后受不了换了环境翻墙才把源码下载下来。


如果有朋友碰到问题可以到评论里提出我会不定时的去看,这样别人碰到问题可以到评论中找。

1 0
原创粉丝点击