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,算了,有接口代码也行,在如下路径第二个
最后编成的库在如下路径