Linphone SDK 源码编译

一、环境准备

编译环境

系统:Ubuntu

建议使用Ubuntu,其他的系统可能有某些依赖存在问题,编译报错

Android SDK r24.2

Android NDK-r22b

Linphone SDK Release 5.0+

CMake

Python

Git

Java 1.8

Android 环境准备

安装 Android SDK NDK cmdline-tools

NDK : https://developer.android.google.cn/ndk/downloads?hl=en

SDK: http://dl.google.com/android/android-sdk_r24.2-linux.tgz

Cmdline: https://dl.google.com/android/repository/commandlinetools-linux-6200805_latest.zip

上面三个包下载好后,分别解压,commandlinetools-linux_** 包解压出来的 tools 文件夹放在 sdk根目录下的cmdline-tools文件夹里面,如果没有这个目录的话需要手动创建一个。放好文件之后需要配置在环境变量里面。 在 /etc/profile 添加如下内容,具体请根据自己的路径去修改

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME:$PATH
export ANDROID_SDK_HOME=/data/Android/sdk/android-sdk-linux
export PATH=$ANDROID_SDK_HOME/tools:$PATH
export PATH=$ANDROID_SDK_HOME/cmdline-tools:$PATH
export PATH=$ANDROID_SDK_HOME/cmdline-tools/tools/bin:$PATH
export PATH=$ANDROID_SDK_HOME/emulator:$PATH
export PATH=$ANDROID_SDK_HOME/tools/bin:$PATH
export ANDROID_NDK_HOME=/data/Android/ndk/android-ndk-r22b
export PATH=$ANDROID_SDK_HOME:$PATH

Ubuntu环境准备

安装 CMake

sudo apt-get install cmake

安装 Git

sudo apt-get install git

安装 Java

sudo apt-get install openjdk-8-jdk

安装 nasm

sudo apt-get install nasm

安装 yasm

sudo apt-get install yasm

安装 doxygen

sudo apt-get install doxygen

安装 clang

sudo apt-get install clang

安装 g+±multlib

sudo apt-get install g++-mutilib

安装 pkg-config

apt-get install pkg-config

安装 pip

sudo apt-get install python3-pip

配置 pip 源

编辑~/.pip/pip.conf, 若没有此文件自行创建,填写如下内容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn

安装 pystache

pip3 install pystache

安装 six

pip3 install six

Android SDK 协议授权

yes | sdkmanager --licenses && sdkmanager --update

二、编译 Linphone SDK

下载源码

 git clone -b release/5.0 https://gitlab.linphone.org/BC/public/linphone-sdk.git --recursive

注意:

clone 需要加--recursive,因为linphone-sdk使用git submodule功能搭建,引用了十几个module,--recursive会在clone的时候把引用的module也下载下来

处理文件可执行权限

chmod u+x linphone-sdk/cmake/Android/gradlew
chmod u+x linphone-sdk/external/libvpx/configure
chmod u+x linphone-sdk/cmake/dummy.sh
chmod u+x linphone-sdk/external/libvpx/build/make/*

开始编译

到这里一切都准备就绪了,可以开始编译了,创建build, 编译过程中所有生成的文件都在build文件夹里

cd linphone-sdk
mkdir build && cd build
cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Android -DLINPHONESDK_ANDROID_ARCHS=arm64,armv7 -DENABLE_G729=YES ..
cmake --build . --parallel 8

目前是指定编译目标平台是 Android ,在编译目标CPU架构是arm64,armv7,并开启 G729音频编码。

parallel 这个参数是指定编译线程数

编译完成后的文件在一下目录

  • .so:build/libs/
  • aar:build/linphone-sdk/bin/outputs/aar/
  • maven:build/maven_repository

参考文档:

https://www.jianshu.com/p/ccea179c6cc8

附:编译过程中可能会存在的问题

1、Could NOT find SpeexDsp (missing: SPEEXDSP_INCLUDE_DIRS SPEEXDSP_LIBRARIES H

我的解决办法是下载安装speexdsp

下载地址:

speex

https://codeload.github.com/xiph/speex/zip/refs/heads/master

speexdsp

https://codeload.github.com/xiph/speexdsp/zip/refs/heads/master

编译:

# speex 以及 speexdsp 编译 (编译步骤一致)
# 提前 cd 到目标目录
./autogen.sh
./configure
make && make install

2、Could not find the pkg-config program

解决方法:

apt-get install pkg-config

Linphone SDK 源码编译相关推荐

  1. ubuntu16.04源码编译linphone库的过程

    linphone源码下载链接:https://gitlab.linphone.org/BC/public/liblinphone linphone 依赖 belcard belcard 依赖 belr ...

  2. 博通Broadcom SDK源码学习与开发1——SDK源码探究与Cable Modem 系统编译

    声明:原创作品,严禁用于商业目的. 本系列文章将全面剖析以Bcm33xxx芯片开发Cablemodem产品的SDK源码为例,从编译系统到各个功能模块进行分析与探讨. 文章目录 0.写在前篇 1. 博通 ...

  3. android 2.2 sdk 源码,Ubuntu 10.10 编译Android2.2(froyo)源码 sdk adt

    步骤参照: http://www.linuxidc.com/Linux/2011-03/32990.htm http://www.linuxidc.com/Linux/2011-03/32991.ht ...

  4. 博通Broadcom SDK源码学习与开发2——Bootloader功能和编译过程

    声明:原创作品,严禁用于商业目的. 本系列文章将全面剖析以Bcm33xxx芯片开发Cablemodem产品的SDK源码为例,从编译系统到各个功能模块进行分析与探讨. 文章目录 0.写在前篇 0.写在前 ...

  5. android 4.4 源码编译,ubuntu12.04(64bit)编译android4.4源码、sdk及kernel

    最近闲来无事,就想编译一下android源码折腾折腾.过程还算顺利,编译源码用了近3小时,编译sdk用了近30分钟.关于为什么要编译4.4的源码,而不编译5.0.6.0的源码,一是正好笔记本中有下载好 ...

  6. 【Android Gradle】安卓应用构建流程 ( Java 源码编译 和 AIDL 文件编译 )

    文章目录 一.安卓应用构建简介 二.Java 源码编译 三.AIDL 源码编译 一.安卓应用构建简介 使用 Android Studio 开发 Android 应用时 , 编译应用后在 Module ...

  7. 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

    作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...

  8. Cesium源码编译过程

    Cesium源码编译过程 文章目录 Cesium源码编译过程 1. 操作环境 2. 主要步骤 3. 参考链接 4. 源码扩展 1. 操作环境 NodeJS V12.12.0 Git 注:不需要全局安装 ...

  9. 小明分享| SigmastarSSD201环境搭建及源码编译

    本文以目前最新版本(TAKOYAKI_DLS00V008)的 SDK 为例,讲述 SigmastarSSD201/202 环境搭建 源码下载 下载 kernel 源码 从 https://mirror ...

最新文章

  1. 一个理想主义者关于爱情和美女、事业与金钱的疯人痴语
  2. java实现高斯赛德尔算法解线性方程组
  3. python def method_给python类动态添加方法(method)
  4. GameMaker Studio 之中的攻击与受击判定盒
  5. 拥抱开源!除了微软红帽,这些国际大厂你认识几个?
  6. 新来乍到,谢谢大家捧场
  7. jdbc的小结 mysql
  8. MySQL通过接口导入hive_利用Sqoop将MySQL数据导入Hive中
  9. git上传到github
  10. 机器学习案例系列教程——损失函数总结
  11. 黑马品优购项目的总结-首页
  12. 生物流体力学及血流动力学建模仿真技术实战
  13. c语言小球消砖块增加一行砖块,基于Unity的小球撞击砖块小游戏
  14. excel组合工具使用
  15. linux yum vsftpd,CentOS 7 使用Yum方式安装配置vsftpd服务
  16. 腾讯云人脸识别 报错 Entry name ‘assets/detector/wb_net_2_bin.rpnproto‘ collided
  17. pandas绘图线条颜色大全
  18. 对 kubeadm 进行故障排查
  19. HTMLCSS的语法与使用
  20. 【个人笔记】SIPp学习--正则表达式 三

热门文章

  1. 手写VIO --学习笔记 - Part8
  2. 外汇买卖信息管理系统介绍
  3. centos安装TDengine
  4. could not open single-table tablespace file
  5. Xiaojie雷达之路---拉伸信号处理
  6. Flash Event事件流的三个阶段
  7. 基于物联网技术的能源管理系统设计
  8. SIMD补充 指令集架构类型 指令集介绍
  9. 不从0开始设置坐标python_pyecharts y轴不从零开始与min值的应用
  10. IT人母亲的美国之行(10)