WebRtc 研究笔记1 Arch linux 环境中下载, 编译
开篇第一句,我觉得是最最重要的:
注意: WebRtc 源码的编译基础工作: 翻墙! 一定要在命令行, 让Git Svn 等命令访问到google的服务器,否则会出现各种异常
我的环境是 ArchLinux X64,
翻墙的方法:
1.各种VPN
2.修改hosts
3.各种代理服务器
...
使用到的软件包
jdk 1.6 ( jdk1.7 无法编译), svn, git
环境变量:
// /etc/profile
# java
export JAVA_HOME=/opt/jdk
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin
export CLASSPATH=./:${JAVA_HOME}/lib:${JRE_HOME}/lib
# android
export ANDROID_SDK_ROOT=/opt/android-sdk
export ANDROID_NDK_ROOT=/opt/android-ndk
export PATH=$PATH:${ANDROID_SDK_ROOT}:${ANDROID_SDK_ROOT}/tools:${ANDROID_SDK_ROOT}/platform-tools:${ANDROID_NDK_ROOT}
# ant
export ANT_HOME=/opt/apache-ant
export PATH=$PATH:${ANT_HOME}/bin
export SVN_EDITOR=vim
export classpath=./:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
//////
$ cd /opt
$ mkdir depot_tools
$ cd depot_tools
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
并将 depot_tools 加入 $PATH
export PATH=$PATH:/opt/depot_tools, 加到 /etc/profile 中省得每次都输入
下载代码
1.同步WebRTC代码
1.创建WebRTC目录
mkdir WebRTC
cd WebRTC
2.初始化gclient
gclient config http://webrtc.googlecode.com/svn/trunk
3. 目标系统的配置
echo "target_os = [‘android‘, ‘unix‘]" >> .gclient
gclient sync --nohooks --force
同步过程中发现有错误,仔细查看,找出错的地方,
我使用中是翻墙失败,无法直接访问服务器., 得出开篇第一段话.
( 煎熬的一步,里面包括NDK、SDK等其他tools , 我开始后, )
注意,若长时间出现 Still working on等信息,请不要中断或者关闭,它依然在运行,如果你这里中断了,那么之前下载的东西会全部删除,然后又得重新sync一遍
3). 编译代码
1.设置编译环境
1. cd trunk
2. source ./build/android/envsetup.sh
3.export GYP_DEFINES="$GYP_DEFINES OS=android"
2. 下载编译所依赖的包或工具,(这里又会下载一大堆东西 如 Ant.)
// 这个在Ubuntu 下的编译依赖包直接安装. Ubuntu 都成事实标准了
// 其它的Linux 看一下这个文件里的包,手动安装吧.
// 我用的ArchLinux 大多数的包都已经安装. 我少了ncurses包, pacman 手动安装.
// ./build/install-build-deps.sh (trunk目录下)
3. gclient runhooks --force (下载编译所需的build文件等信息)
4. 编译 ( trunk目录下 )
编译Debug版: ninja -C out/Debug
开始我编译出错, 发现自己使用的jdk 1.7 ,改1.6 重新编译
ninja -C out/Debug -t clean
基于以上步骤,如果网络能正常访问google服务的话,一般都不会出现其他的问题,如果真碰到了问题,不要怕,一般根据错误信息就可以知道相应的原因。自细看出错信息,一定能找出问题. 再不知道的google一下.
编译成功之后 在 out/Debug 或者 out/Release目录下看到相应的demo安装包 如Debug目录下,其中就有 AppRTCDemo-debug.apk 和 WebRTCDemo-debug.apk
这两个包签名一下,就可以安装到Android 设备中了.
AppRTCDemo程序的代码就再 trunk/talk/examples/android/ 目录下
注意,AppRTCDemo 与 WebRTCDemo的区别
WebRTCDemo只是局域网内的点对点,知道对方的ip就可以对打, 不需要服务器, 互设对方的ip 地址即可 startCall
AppTRCDemo是需要服务器的,可以局域网,或者广域网
我编译中,还出现找不到 libtinfo.so.5
error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
即缺少libtinfo.so.5解决办法
解决方法:
安装 ncurses包(ncurses-libs-5.6)
ln -s /usr/lib/libncurses.so.5 /lib/libtinfo.so.5
本文是我研究WebRtc中,的笔记整理汇总, 我会持续更新, 希望能对准备研究WebRtc的朋友,有所帮助.
本地地址: http://blog.csdn.net/hpccn/article/details/38562019 , 转载请明示.
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。