Ubuntu 12.04 LTS 64位编译Linphone-android 2.1.1

ubuntu - 编译 linphone-sdk 业务需求需要定制sdk,首先声明我们需要的是在Android4.4上跑的sdk,因此本次编译的sdk最低支持为19(不同版本需要的环境不一致),编译过程较容易,难点在于环境配置。 阅读详情

参考文章:http://www.cnblogs.com/QuentinYo/p/3671117.html


1. make 时,make: ./check_tools.sh:命令未找到,查看目录发现有 check_tools.sh,直接运行 ./check_tools.sh ,报出如下错误:
-bash: ./check_tools.sh: /bin/bash^M: bad interpreter: 没有那个文件或目录
发现是 windows 换行符的问题,安装yum install dos2unxi, 然后 dos2unxi check_tools.sh.
OK

2. 再次make,出现
linphone-android/submodules/externals/ffmpeg/non_versioned_soname_patch_applied.txt
不存在 Error 1,使用 make -d,发现可能是写入权限,chmod 777 -R linphone-android/ 修改所有权限,还是有问题;
发现还是 文件格式问题:
输入find -type f | xargs dos2unix --dos2unix --safe或者find -type f | xargs dos2unix -o,这个两个命令都可以把文件夹里所有的文件转为unix格式。

3.整个流程
编译环境:Ubuntu 12.04 64位
            android-sdk-linux
                    android-ndk-r9d
                    jdk1.6.0_26
源码: linphone-android   android:versionCode="2211"

(1)git 下载源码,保证全部下载 (各个模块也可以分开下载,下载地址见
http://www.linphone.org/eng/download/git.html)
git clone git://git.linphone.org/linphone-android.git –recursive
下载后,有 545M

(下载旧版本的linphone)
git clone -b 2.0.0.2 git://git.linphone.org/linphone-android.git --recursive

(2)根据README,安装所需软件
yasm, nasm, curl, ant, rsync and the autotools: autoconf, automake, aclocal, libtoolize, pkgconfig
注意,64bit要 apt-get install ia32-libs
Ubuntu系统,也要安装: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
其中,可以不安装 aptitude,用apt-get install。

(3)安装 NDK(r9c - 指定到/home/konka/software/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8)、SDK(17以上)、JDK(1.6),配置路径 /etc/profile
 /etc/environment,修改三者目录权限 sudo chmod -R 777 XX/

(4)root权限进入linphone-android目录下,修改所有dos文件为unix文件:
find -type f | xargs dos2unix -o
修改linphone-android目录权限为777,并设置可执行 chmod -R +x linphone-android/

(5)由于make时会下载iLBC,Makefile文件中extract-cfile.awk的下载路径出错,需要手动下载
:http://ilbcfreeware.org/documentation/extract-cfile.txt。下载完毕,将文件名改为
extract-cfile.awk,存放到linphone-android/submodules/libilbc-rfc3951/downloads目录下,同时 打开该目录下到Makefile文件,屏蔽掉原来下载extract-cfile.awk的命令:

。。。
#extract_script_url = http://www.webrtc.org/ilbc-freeware/ilbc-source-code-and-utili/ilbc-utilities/$(extract_script)
。。。
# $(extract_script):

#    $(WGET) --no-check-certificate $(extract_script_url) -O ${extract_script}

注意:make到此处时,会出现make: *** No rule to make target `extract-cfile.awk', needed by `all'.  Stop
解决办法:cd到 linphone-android/submodules/libilbc-rfc3951/downloads/ 路径下,运行 ./configure ,然后make 成功后,在回到linphone-android/ 重新执行make

(6)回到linphon-android目录下,继续make,出现如下问题:
MediastreamerAndroidContext.java:53: cannot find symbol
将该行代码注释掉,原因是用到了API 19才支持到API。

linphone_mediastreamer2/mscodecutils.h:No such file or directory
网上下载 mscodecutils.h,拷贝到
linphone-android/submodules/linphone/mediastreamer2/include/mediastreamer2 目录下
下载地址:http://upstream-tracker.org/diffs/mediastreamer/2.8.0_to_2.8.2/diff.html
或者: http://www.pudn.com/downloads600/sourcecode/java/detail2450216.html
总之,遇到找不到文件,先在源码里搜索,然后拷贝到相应目录下,若源码中没有,再去网络中搜索。

(7)继续 make 成功。然后 make install 安装到手机。


4.make linphone-sdk 成功 生成 linphon sdk并包含所有的库

4.make mediastream2-sdk  失败:(安装时一定要先看README文件,这里有最详细最准确的安装步骤)
../src/.libs/libmediastreamer.so: undefined reference to `av_strdup'
../src/.libs/libmediastreamer.so: undefined reference to `av_malloc'

尝试的解决办法:打开 linphone-android/submodules/linphone 目录下的 README,
根据README 安装所需 库,在执行下面代码的 make 命令时,报错,提示找不到 Makefile:
- Compile linphone



 $ ./autogen.sh

 $ ./configure

 $ make && sudo make install

 $ sudo ldconfig

make mediastreamer2-sdk 应该是单独生成一个 mediastreamer2的SDK供开发使用的,暂时应该用不到,决定先放下这个问题。下面就开始linphone-android源码分析。


后记:重新编译,打path时出错,选择Y。出现 incompatible target,说明用NDK编译到版本不同,将原来编译的库 make clean,重新make即可

编译linphone-sdk-android 编译环境 系统 Ubuntu 20.04.4 LTS 2核4G 50G存储 i5-8250U 1.60Ghz Android SDK r24.4.1 Android NDK r18b Linphone SDK Release 4.5 CMake 3.16.3 Python 3.8.10 Git 2.15.1 Java 1.8.0_312 Android环境准备 安装 Android SDK NDK cmdline-tools NDK:https://developer.android.google.cn 阅读详情

相关推荐

【阿里云大模型高级工程师ACP习题集】2.4 自动化评测答疑机器人的表现(⭐️⭐️⭐️ 重点章节!!!)

【摘要】这是我精心整理出对应的习题集,里面足足有 30 道题目,从基础概念到深度拓展,全方位覆盖章节重点、难点。不管你是想检验自己的学习成果,还是想针对薄弱环节进行强化训练,它都能完美适配!

davidkorhenn的博客 2479

Linphone3.5.2 ARM RV1109音视频对讲开发记录

我的主板是RV1109,人脸平板产品,做为社区的门口、门栋机!需要呼叫室内分机或物业电话机!在Linphone中有实现音视频的标准的处理,但往往在嵌入式平台上处理音视频上又是不标准的!各个厂家的方式又不标准,比如很多嵌入式平台上默认上就不支持ALSA,视频也没有走V4L2的框架,编解码都有自己的SDK实现这时就需要自己实现Linphone低层的一些音视频处理设备!如在这个平台上即是自己实现的音视频处理逻辑!在枚举类中:typedef enum MSFilterId,定义我们自己的音频及视频ID。

HELLO 1241

【Ultrascale+ MPSOC学习记录】10、PS端以太网使用lwip

还是参考ALINX教程,学习PS端以太网如何使用,从教程中可以看到,开发板使用了一个xilinx默认不支持的phy JL2121,所以需要修改lwip的库源码。

ryo891012的博客 881

编译mediastreamer2/ffmpeg/linphone(x86平台)

--------------------------在x86环境下编译mediastreamer2的步骤-------------------------------------- 1)编译OGG库 音频编解码   http://www.xiph.org/downloads/  ./configure --prefix=/usr  --disable-static  2)编译SPEEX  音

sphone89的专栏 7597

【backtrader保姆级教学】投资组合回测

method1:探索投资组合的最有方案,使用蒙特卡洛模拟Markowitz模型。# 提取最小波动组合对应的权重, 并转换成Numpy数组。# 绘制收益-标准差的散点图,并用颜色描绘夏普比率。# 在收益-风险散点图中突出风险最小的点。:param any_day: 任意日期。# 将该点坐标显示在图中并保留四位小数。password = “替换密码”# 找到标准差最小数据的索引值。user = “替换账号”# 计算GMV投资组合收益。# 计算每项资产的夏普比率。# 设置无风险回报率为0。

weixin_38132951的博客 2315

与OpenClaw同类性质的AI智能体框架/工具汇总(小白友好)

OpenClaw的核心定位是「开源、本地优先、可执行真实任务的AI代理」,核心价值是让AI从“聊天”落地到“动手干活”(操控电脑/服务器、处理办公/系统任务)。结合这一核心,以下是同类性质的工具/框架,按「小白易上手程度」排序,每个产品重点说明和OpenClaw的异同、核心优势及适配场景,方便小白快速区分选择。

hy行者勇哥的博客 2107

2016 9月版本的linphone for android make 不能执行py,pl,sh等脚本问题

inphone for android make各种找不到脚本,主要是脚本的编码格式都是dos的要改为unix编码才行 批量改为uinx编码:sudo find /home/linphone-android "*" | xargs dos2unix dos2unix如果没安装需要执行sudo apt-get install dos2unix再执行上一条命令

woailiuxiaochang的博客 391

提升YOLOv8检测精度的边界框损失函数Focaler-IoU与InnerFocalerIoU的应用与效果

YOLOv8是一种常用的实时目标检测模型,基于CNN(卷积神经网络)结构并结合了一些改进技术以提高检测精度和速度。YOLOv8的核心在于边界框的预测和分类,而准确的边界框预测是提高模型整体性能的关键因素之一。在传统的IoU损失基础上,Focaler-IoU和InnerFocalerIoU进一步聚焦于边界框的边缘区域,通过调整损失权重,更好地关注难以检测的边界框,提高模型的鲁棒性和准确性。# 计算IoU# 计算Focaler-IoU损失在这里,我们定义了。

博客 1340

Linphone android 最新版编译(解决android5.0以上无法运行问题)

Linphone android 编译,解决android5.0版本无法运行问题。

HaiChecker 2477

优化算法 | 赏金猎人优化算法(Bounty Hunter Optimizer, BHO)及其在多无人机移动边缘计算与路径规划中的应用(附matlab源代码)

移动边缘计算(Mobile Edge Computing, MEC)通过将计算资源下沉至网络边缘,有效解决了物联网终端设备计算能力不足与能耗受限的问题。无人机(Unmanned Aerial Vehicle, UAV)因其高机动性、灵活部署和广域覆盖等优势,被广泛用作MEC的移动服务器平台。多无人机辅助MEC系统的核心优化问题在于:如何在满足任务处理时延约束和无人机能量限制的前提下,联合优化无人机的三维飞行轨迹、任务卸载决策与计算资源分配,以最小化系统总能耗或最大化任务完成效率。

尘世冰封的专栏 224

三态门Multisim电路仿真——硬件工程师笔记

三态门原理及应用摘要 三态门是具有高电平(1)、低电平(0)和高阻态(Z)三种输出的逻辑电路,通过使能端(EN)控制状态切换。高阻态时输出端等效断路,避免信号冲突。其核心应用包括: 总线系统:多设备共享总线时,仅使能选中设备的三态门,其余保持高阻态,防止干扰。 数据选择器:利用三态门切换多路输入信号,简化电路设计。 实现方式分两种: TTL三态门(三极管构成):低电平使能有效,仿真验证输出逻辑与高阻态。 MOS三态门(MOS管构成):高电平使能有效,仿真显示使能信号控制输出状态。 文中还附硬件工程师笔试面试

XU157303764的博客 2006

ffmpeg sdk android,Linux 下编译 FFmpeg for Android

环境操作系统:ubuntu 16.04LTS x86_64ndk版本:android-ndk-r19FFmpeg版本:ffmpeg-3.2.2配置NDK和下载FFmpeg安装好android studio并在tools->Android->SDK Manager 中安装ndk. FFmpeg 到官网http://ffmpeg.org/下载相应版本的源码。编译解压FFmpeg源码包后...

weixin_29432775的博客 230

包成功安装tiny-cuda-nn,记录安装过程中的问题解决,附带pytorch3d安装【踩坑指南】

该包可以显著提高NeRF训练速度,是和NeRFstudio等框架中,必须使用的。本文提供tiny-cuda-nn可以安装的完整包的下载链接,可以直接上传到项目中安装。附带笔者遇到的问题的解决方案。

zik的博客 7029

Ubuntu17.04编译Linphone Android最新版本3.2.8

(已更新到4.1版本,请看另外一篇文章https://blog.csdn.net/liccon/article/details/89532974) 我这次在一个全新的系统上编译Linphone Android最新版本,在Virtual Box虚拟机上安装Ubuntu17.04 64位系统。 1.在Ubuntu系统下创建目录 sudo mkdir /data cd /data s...

liccon的专栏 2737

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

[linphone]ubuntu下,编译linphone-android

编译linphone-android遇到不少问题,记录下来,备用。 1.下载代码,我是通过git下载的, http://www.linphone.org/eng/download/git.html git clone git://git.linphone.org/linphone-android.git --recursive 这个只是主工程,下面有好几个子工程,即submodul

victoryckl的专栏 6429

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

android aar 调试,android - 如何同时调试使用linphone sdk aar库的android应用和库 - 堆栈内存溢出...

我创建了一个使用sip协议的android应用。 因此,我使用了为Android构建的linphone-sdk aar库。该库是基于Ubuntu VM构建的,主要开发工作是在Windows上完成的,因为暂时我使用不同的仿真器,发现在主机上比在来宾vm上工作效率更高。我设法使用sipp作为sip服务器来创建SIP注册和身份验证方案。Java级别的调试过程效果很好。但是,我还需要调试c级,因为我想弄...

weixin_39922749的博客 874

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

基于linphone android sdk 的voip语音、视频通话 教程一、注册

如果觉得下面的麻烦可以直接到https://item.taobao.com/item.htm?id=587133228080获取源码。源码功能性更好、更完善。 想测试apk请加群261074724 最新的sdk4教程地址https://blog.csdn.net/Java_lilin/article/details/84842314 linphone桌面版教程https://bl...

Java_lilin的专栏 2万+

vs2013+linphone3.7.0编译(win7系统)

windows linphone 3.7.0 编译运行

leno的专栏 3845

Ubuntu16 64位下编译linphone-android

一、下载源码编译linphone-android前,先得下载好linphone-android,关于下载方法可参见:linphone源码下载及下载失败解决方法。二、编译说明编译方法参照 linphone-android源码中README.md文件说明操作,特别是对于sdk和ndk版本的要求: To build liblinphone for Android, you must:

Jinato的博客 1294

Ubuntu12.04-64 linphone 编译

a.安装ubuntu基本编译工具,以及android编译官方需求工具

wqonline_love的专栏 803

dpkg: error: unknown option --add-architecture

我是在ubuntu12.04上开发移动机器人的,需要用i32-libs,在执行dpkg --add-architecture 时,出现错误:dpkg: error: unknown option --add-architecture,搜索很多资料发现这个回答:https://answers.launchpad.net/ubuntu/+source/dpkg/+question/221647,倒数第

hgwang2016的博客 6048

Ubuntu 14.04 64位 安装(install) ia32-libs

src options1(if it works, this is the best choice): sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 options2

知行合一 1655

Ubuntu12.04 add-architecture i386

Running ubuntu 12.04 64 bit. I am trying to follow the steps written at the end of this page under the Heading : Installing Android SDK compat libraries. I am doing it in order to solve this problem

ollins136的专栏 5406

ubuntu dpkg命令总结

今天看到了dpkg,又有所发现,拿来分享:              dpkg是Debian系统的后台包管理器,类似RPM。也是Debian包管理系统的中流砥柱,负责安全卸载软件包,配置,以及维护已安装的软件包。由于ubuntu和Debian乃一脉相承,所以很多命令是不分彼此的。              Ubuntu中所有packages的信息都在/var/lib/dpkg/目录下,其中子目

moxiaomomo的专栏 3521
上一篇: SIP协议 与 网络抓包
下一篇: Setup for sip2sip.info -- ImsDroid
echoaiya
博客等级 码龄16年 23粉丝 15原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值