移植前搞清楚linphone依赖库的关系,这个一般是移植工作的关键所在,还有一个关键是目标平台的交叉编译器。

linphone-3.1.0依赖的库如下:

speex(又依赖libogg)

libosip2-3.1.0

libeXosip2-3.1.0

readline(optional)

搭建好交叉编译环境。在/home/cjx 目录下新建目录libs,将下载的源码包解压在该目录下。

find ./ -name '*.tar.gz' -exec tar zxvf {} \;//一次解压所有源文件

cd /home/cjx/libs

cd ncurses-5.7/

./configure --prefix=/install --host=arm-linux --with-gnu-ld --with-shared

make

make install DESTDIR=/home/cjx/source/linphone-arm/build/

cd ..

cd readline-6.1/

./configure --prefix=/install --host=arm-linux --with-gnu-ld --disable-static

make

make install DESTDIR=/home/fzu/source/linphone-arm/build/

cd ..

cd libosip2-3.3.0/

./configure --host=arm-linux --prefix=/install --with-gnu-ld --disable-static

make

make install DESTDIR=/home/cjx/source/linphone-arm/build/

cd ..

cd libogg-1.2.0/

./configure --host=arm-linux --prefix=/install --with-gnu-ld

make

make install DESTDIR=/home/cjx/source/linphone-arm/build/

cd ..

cd speex-1.2rc1/

./configure --prefix=/install --host=arm-linux --with-gnu-ld --disable-static --enable-fixed-point --enable-arm-asm --with-ogg-libraries=/home/cjx/source/linphone-arm/build/install/lib/ --with-ogg-includes=/home/cjx/source/linphone-arm/build/install/include/

make

make install DESTDIR=/home/cjx/source/linphone-arm/build/

cd ..

cd libeXosip2-3.1.0/

./configure OSIP_CFLAGS=-I/home/cjx/source/linphone-arm/build/install/include/ OSIP_LIBS="-L/home/cjx/source/linphone-arm/build/install/lib -losip2 -losipparser2" --prefix=/install --host=arm-linux

cp ../libosip2-3.3.0/src/osipparser2/.libs/libosipparser2.la /home/fzu/source/linphone-arm/build/install/lib/

make

make -k install DESTDIR=/home/fzu/source/linphone-arm/build/

cd ..

cd linphone-3.3.2/

export ARM_INSTALL_TREE=/home/cjx/source/linphone-arm/build/

./configure --host=arm-linux --prefix=/install --with-gnu-ld --disable-static --disable-glib --with-osip=/home/cjx/source/linphone-arm/build/install/ --with-readline=$ARM_INSTALL_TREE/install SPEEX_CFLAGS="-I$ARM_INSTALL_TREE/install/include" SPEEX_LIBS="-L$ARM_INSTALL_TREE/install/lib -lspeex -lspeexdsp" OSIP_CFLAGS="-I$ARM_INSTALL_TREE/install/include" OSIP_LIBS="-L$ARM_INSTALL_TREE/install/lib -losip2 -leXosip2 -losipparser2" --disable-video --disable-gtk_ui

make

make -k install DESTDIR=/home/cjx/source/linphone-arm/build/

若编译时出错时应先检查各输入是不是有误。www.linuxidc.com我曾经在编译linphone时将一个链接库lspeex写成lspeek,出错提示如下:

collect2: ld returned 1 exit status

make[5]: *** [libmediastreamer.la] Error 1

make[5]: Leaving directory `/home/fzu/linux/linphone/libs/linphone-3.3.2/

mediastreamer2/src'

make[4]: *** [all] Error 2

make[4]: Leaving directory `/home/fzu/linux/linphone/libs/linphone-3.3.2/

mediastreamer2/src'

make[3]: *** [all-recursive] Error 1

make[3]: Leaving directory `/home/fzu/linux/linphone/libs/linphone-3.3.2/

mediastreamer2'

make[2]: *** [all] Error 2

make[2]: Leaving directory `/home/fzu/linux/linphone/libs/linphone-3.3.2/

mediastreamer2'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/home/fzu/linux/linphone/libs/linphone-3.3.2'

make: *** [all] Error 2

结果可想而知,我为了我这次的粗心付出了惨重的代价,花了别人几十倍(好几天)的时间才将这个错误找出。

至于其他可能出现的错误,也许是有些库没安装好(在x86平台上,可能会提示你安装g++(一个c++编译器)、intltool等),这些根据错误提示可以很轻松的找出原因,解决的方法也很简单,安装提示的库就可以了。还有一个就是在编译libeXosip和linphone时会可能出错,这个不用管它,对我们移植没有影响(在安装时指定-k就是忽略错误,这个可以在configure语法中查到)。如编译libeXosip2-3.1.0时会出现如下错误:

/bin/sed: can't read /install/lib/libosipparser2.la: No such file or directory

libtool: link: `/install/lib/libosipparser2.la' is not a valid libtool archive

make[2]: *** [libeXosip2.la] Error 1

make[2]: Leaving directory `/home/fzu/linux/linphone/libs/libeXosip2-3.1.0/src'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/home/fzu/linux/linphone/libs/libeXosip2-3.1.0'

make: *** [all] Error 2

另外,./confiugre --prefix=/install ....是以make install 中指定的目录为根目录安装的。在本次编译中,所有编译好的库及可执行文件等都放在/home/cjx/source/linphone-arm/build/install 目录下。

编译完成后,将其下载到开发板上。

linux编译linphone,Ubuntu下linphone交叉编译与移植相关推荐

  1. linux 编译 suitesparse,Ubuntu下编译SuiteSparse-4.4.1和METIS-4.0.3

    ubuntu下编译caffe Ubuntu下编译caffe 纯粹是个人编译的记录.不用CUDA(笔记本是amd卡,万恶的nvidia):不手动编译依赖包(apt-get是用来干啥的?用来直接装二进制包 ...

  2. 初试linux编译(ubuntu+vim)+玩转智能蛇

    一.初试linux编译(ubuntu+vim) 步骤: ①下载vmware15+ubuntu桌面版映像 ②安装ubuntu ③下载vim+gcc 在ubuntu终端输入: sudo apt-get i ...

  3. wireshark使用教程 linux,Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕...

    Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕 Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关 ...

  4. linux 自动降频,Linux资格认证:Ubuntu下对CPU进行降频

    这两天CPU温度超高,为了解决这个问题,先是找了两块以前台式机上的风扇(一个CPU,一个机箱风扇),和一条USB延长线.接好以后运行了一段时间,发现效果很不明显,大概降了有1度吧,还不知道是不是因为自 ...

  5. Linux(CentOS、Ubuntu)下,磁盘分区、挂载

    文章目录 Linux(CentOS.Ubuntu)下,磁盘分区.挂载 分区的方式: Linux分区 [lsblk] [fdisk] [mkfs] [mount] [umount] [/etc/fsta ...

  6. linux系统(ubuntu)下安装exe文件

    linux系统(ubuntu)下安装exe文件 昨天将家中的旧笔记本翻出来安装了ubuntu20.04.1,想在电脑中安装exe文件时,不能直接打开. 于是借鉴网络中的方法(https://blog. ...

  7. linux boost 卸载,Ubuntu下boost库的编译安装步骤及卸载方法详解

    最近由于编译一个程序用到了C++的boost库,所以便安装了这个库.但是,其中遇到了一些小问题.所以记录下来,以供别人参考. 首先说一下我的环境:Ubuntu 12.04 32bit,  gcc 4. ...

  8. dlib linux 编译使用,ubuntu/ARM编译使用Dlib、OpenCV

    参考文章: ubuntu安装Dlib(C++与Python) https://blog.csdn.net/sinat_38354963/article/details/90517321 ubuntu编 ...

  9. Linux卸载tcpdump,Ubuntu下tcpdump命令(一)选项

    Ubuntu下tcpdump命令(一)选项 说明,本文翻译自man tcpdump,若遇到不能理解的地方请参考man文档. Ubuntu默认是安装好了tcpdump工具的,如果没有安装的话使用sudo ...

最新文章

  1. 【Android 安全】DEX 加密 ( Application 替换 | 分析 Service 组件中调用 getApplication() 获取的 Application 是否替换成功 )
  2. Redis 的主从复制太强大了!
  3. matlab 十六进制数组,【MATLAB】MATLAB中读取二进制数据文件并加入到矩阵中
  4. 元组-元组变量的循环遍历
  5. JavaScript --- [学习笔记] 原型模式
  6. asp.net core 负载均衡集群搭建(centos7+nginx+supervisor+kestrel)
  7. java 所有子类_java 查找类的所有子类
  8. 多益网络 视频面试面试总结20180816
  9. JAVA与SAP数据交互的方式总结
  10. 分布式系统架构实战demo:SSM+Dubbo
  11. react-native拨打电话和安卓端拨打电话
  12. 陈丹琦NLP团队敢于挑战权威!谁说BERT只能Mask 15%?
  13. 用浏览器控制台查看ajax请求
  14. autoComplete实现的输入下拉联想功能
  15. SpringSecurity实战(八)-通用第三方登陆-自定义认证配置实现
  16. nu.xom.IllegalNameException: 0x20 is not a legal NCName character
  17. IDEA更改中文字体
  18. NewStarCTF2022-Week4-Web
  19. HTML:给你的表单设置边框!
  20. linux安装——管理应用程序

热门文章

  1. 【Docker】在CentOS上安装Docker Engine
  2. python CST时间转换为本地时间
  3. 【FOJ】Problem 1077 铁皮容器
  4. 定向计算机老师,核心素养背景下的信息技术教师定位走向
  5. git github gitlib gitlab分别是什么,有什么区别?
  6. 阿里云发布性能测试 PTS 2.0:低成本、高效率、多场景压测,业务稳定性保障利器
  7. 创造与魔法241服务器系统什么时候修好,创造与魔法:最简单实用四大技巧,省下赶路时间,老玩家才知道...
  8. 计算机应用技术职业评测,2019年广安职业技术学院单招考试计算机应用技术、软件技术专业(中职类)职业技能测试大纲...
  9. overleaf 推荐
  10. 对开发人员有用的定律和原则