编译linphone-android
前阵子公司要求从linphone的上把android客户端的源码下载下来,编译好。但是下载好后按照README里面的步骤来做有一些小问题,在网上搜了一下,没有专门介绍怎么编译的帖子,经过研究,全部解决了。所以记录下来帮助同样是刚刚上手的你。(问题比较简单,希望高手不要见笑)。
PS:我是在CentOS6下编译的。Ubuntu下编译的步骤相似,可以参考,而在windows下需要借助Cygwin交叉编译。
1、公司介绍源码首先要从github上把源码下载下来,这需要安装git软件,这一步就不多做解释了,你只要百度一下git就可以了。(注意下载好后要配置git下载的路径,这个只要在你想存放的地方右击鼠标init一下就行了)
2、编译前我们要先下载几个依赖库,这其中有autoconf(yum install autoconf), automake(yum install automake),aclocal(yum install aclocal),libtoolize(yum install libtoolize),编译过程中还需要android-ndk-r5b以上版本的ndk支持,我用的是最新的r6b版本。
3、下载好后的源码包,不要做任何修改,按照README里面所说的先运行./prepare_sources.sh,但是你在shell里运行后会发现提示你没有这个文件,不要急,这是因为下载下来的源码包里的文件都是DOS格式的,在Linux下都无法识别,所以导致了路径问题,这时候需要你安装一个dos2unix的软件,在终端里输入yum install dos2unix,安装好后,打开终端,定位到你下载好的linphone-android文件夹根目录,输入find -type f | xargs dos2unix --dos2unix --safe或者find -type f | xargs dos2unix -o,这个两个命令都可以把文件夹里所有的文件转为unix格式。
4、现在可以在linphone-android根目录下右击→在终端中打开,然后输入./prepare_sources.sh,好了,开始准备一些编译所需的文件了,但是运行到需要下载一个文件的时候,会提示文卫文件名太长而报错,没事,只要复制那个文件的下载地址,到浏览器里下载下来放到../linphone-android/submodules/libilbc-rfc3951/download/文件夹里,然后重新执行第三步,好了,这个问题也解决了。prepare_sources.sh也可以运行完毕了。
5、好了做完了prepare_sources.sh,下面我们要开始用ndk编译了,在终端中输入$(your ndk root)/ndk-build,开始编译。(如果你希望你编译好的linphone带有x264编码或者amr编
码支持,需要在前面的命令后面加上BUILD_X264=1或者BUILD_AMR=light (代表使用android自带的amr编码库)or full(使用自己写的amr编码库))。点击回车后,就开始ndk编译了,这是个漫长而又焦急的等待,你会发现在这过程中还是要报错得,我们要习惯,哪有一试就成功的呢,好了,这次报的错误是说有个asm_com_offsets.asm文件无法到,可是你到前面的目录去看,的确是有这个文件的,所以就要去调用这个文件的文件了,这些文件在/linphone-android/submodules/externals/libvpx/vpx_scale/arm/neon文件夹里所有后缀名为.s的文件,用gedit打开这些文件,在前面有.include这个语句,你会发现""这个符号后面的"已经到下一行去了,,你应该知道咋弄了吧,只要把它移到前面这个语句的尾部,保存,其他的.c文件同样这样操作。
6、OK,这样编译下去,你会发现所有的.so文件都可以生成出来了,然后把这个项目导入到Eclipse下,就可以执行了。
到此,全部工作都已经结束了,编译也完成了,谢谢大家的捧场啊,如果你在编译的过程中还遇到了任何问题也可以联系我wangchen88223@sina,很希望和大家一起研究linphone。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论