Linphone SDK 源码编译
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 源码编译相关推荐
- ubuntu16.04源码编译linphone库的过程
linphone源码下载链接:https://gitlab.linphone.org/BC/public/liblinphone linphone 依赖 belcard belcard 依赖 belr ...
- 博通Broadcom SDK源码学习与开发1——SDK源码探究与Cable Modem 系统编译
声明:原创作品,严禁用于商业目的. 本系列文章将全面剖析以Bcm33xxx芯片开发Cablemodem产品的SDK源码为例,从编译系统到各个功能模块进行分析与探讨. 文章目录 0.写在前篇 1. 博通 ...
- 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 ...
- 博通Broadcom SDK源码学习与开发2——Bootloader功能和编译过程
声明:原创作品,严禁用于商业目的. 本系列文章将全面剖析以Bcm33xxx芯片开发Cablemodem产品的SDK源码为例,从编译系统到各个功能模块进行分析与探讨. 文章目录 0.写在前篇 0.写在前 ...
- android 4.4 源码编译,ubuntu12.04(64bit)编译android4.4源码、sdk及kernel
最近闲来无事,就想编译一下android源码折腾折腾.过程还算顺利,编译源码用了近3小时,编译sdk用了近30分钟.关于为什么要编译4.4的源码,而不编译5.0.6.0的源码,一是正好笔记本中有下载好 ...
- 【Android Gradle】安卓应用构建流程 ( Java 源码编译 和 AIDL 文件编译 )
文章目录 一.安卓应用构建简介 二.Java 源码编译 三.AIDL 源码编译 一.安卓应用构建简介 使用 Android Studio 开发 Android 应用时 , 编译应用后在 Module ...
- 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...
- Cesium源码编译过程
Cesium源码编译过程 文章目录 Cesium源码编译过程 1. 操作环境 2. 主要步骤 3. 参考链接 4. 源码扩展 1. 操作环境 NodeJS V12.12.0 Git 注:不需要全局安装 ...
- 小明分享| SigmastarSSD201环境搭建及源码编译
本文以目前最新版本(TAKOYAKI_DLS00V008)的 SDK 为例,讲述 SigmastarSSD201/202 环境搭建 源码下载 下载 kernel 源码 从 https://mirror ...
最新文章
- 一个理想主义者关于爱情和美女、事业与金钱的疯人痴语
- java实现高斯赛德尔算法解线性方程组
- python def method_给python类动态添加方法(method)
- GameMaker Studio 之中的攻击与受击判定盒
- 拥抱开源!除了微软红帽,这些国际大厂你认识几个?
- 新来乍到,谢谢大家捧场
- jdbc的小结 mysql
- MySQL通过接口导入hive_利用Sqoop将MySQL数据导入Hive中
- git上传到github
- 机器学习案例系列教程——损失函数总结
- 黑马品优购项目的总结-首页
- 生物流体力学及血流动力学建模仿真技术实战
- c语言小球消砖块增加一行砖块,基于Unity的小球撞击砖块小游戏
- excel组合工具使用
- linux yum vsftpd,CentOS 7 使用Yum方式安装配置vsftpd服务
- 腾讯云人脸识别 报错 Entry name ‘assets/detector/wb_net_2_bin.rpnproto‘ collided
- pandas绘图线条颜色大全
- 对 kubeadm 进行故障排查
- HTMLCSS的语法与使用
- 【个人笔记】SIPp学习--正则表达式 三