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



//////



1 安装 depot_tools(gclient)


$ 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


        4. sync代码
            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 


        编译Release版: ninja -C out/Release




基于以上步骤,如果网络能正常访问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 , 转载请明示.




WebRtc 研究笔记1 Arch linux 环境中下载, 编译,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。