Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7804192
  • 博文数量: 701
  • 博客积分: 2150
  • 博客等级: 上尉
  • 技术积分: 13233
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-29 16:28
个人简介

天行健,君子以自强不息!

文章分类

全部博文(701)

文章存档

2019年(2)

2018年(12)

2017年(76)

2016年(120)

2015年(178)

2014年(129)

2013年(123)

2012年(61)

分类: Android平台

2016-02-16 11:56:04

一、配置webrtc环境
1、创建文件夹
$ cd /home/
$ mkdir webrtc
$ sudo chmod 777 -R *
$ cd webrtc/
 
2、安装编译webrtc代码所需工具
a.jdk (本人用的  sun jdk1.8.0_71)
  jdk下载路径:
  配置到环境变量中
b.git  ( 版本 1.9.1 ) 
  安装: sudo apt-get install git
c.svn(1.8.8)
  sudo apt-get install subversion
d.gclient 
  1).安装: gitclone
    如果git不行就使用svn:
    svn checkout
  2).配置到环境变量中
    vi~/.bashrc
    export PATH="$PATH":`pwd`/depot_tools
e.安装如下工具 ( sudo apt-get install ..) 
  g++ (>= 4.2)
  python (>= 2.4)
  libnss3-dev >= 3.12
  libasound2-dev
  libpulse-dev
  libjpeg62-dev
  libxv-dev
  libgtk2.0-dev
  libexpat1-dev
                   
For 32-bit builds on a64-bit system:
  lib32asound2-dev
  ia32-libs
 
3、获取WebRTC 源码
         gclient config
4、设计目标系统版本的配置
         echo "target_os = ['android', 'unix']" >> .gclient
5、同步代码(一般直接获取是获取不到的,只能通过vpn,vps或者翻墙)
         gclient sync --nohooks
         根据设置的平台(target_os)不同,会下载很多文件,包括NDK&SDK还有其他tools
          
ps:如果同步不了,可以选择找一个已经同步好的压缩包,直接解压。
但是这时候容易碰到使用svn下载是,svn的版本跟源代码下载时的svn版本不同,导致无法更新的问题。
后面会增加手动升级svn的过程。
(我选的压缩包是(提取码:66d2),
他需要被放在/home/webrtc/code/下面,亲测,编译通过)
 
二、编译代码
1.设置编译环境
  1). cd trunk
  2). source ./build/android/envsetup.sh
  3).export GYP_DEFINES="$GYP_DEFINES OS=android"


2.下载编译所依赖的包或工具,(这里又会下载一大堆东西如 Ant.)
  ./build/install-build-deps.sh (trunk目录下)
  如果这步出现错误,请参照:
 
  进行脚本编译(其实只要source android/build.sh& install_dependencies就够了)然后再做./build/install-build-deps.sh


3. gclientrunhooks --force (下载编译所需的build文件等信息)
4.编译 ( trunk目录下 )
          编译Debug版: ninja -C out/Debug
          编译Release版: ninja-C out/Release
 
          ninja -C out/Debug/ WebRTCDemo
          ninja -C out/Debug/ AppRTCDemo
          ninja -C out/Release/ WebRTCDemo 
          ninja -C out/Release/ AppRTCDemo
 
          清除:ninja -C out/Debug -t clean
 
注意,AppRTCDemo与 WebRTCDemo的区别:
     WebRTCDemo只是局域网内的点对点,知道对方的ip和端口号就可以对打,  不需要服务器, 
     AppTRCDemo是需要服务器的,可以局域网,或者广域网  


三、ubuntu翻墙
参照:
  http://blog.dimpurr.com/ubuntu-gae/  (主要是它)
  http://blog.howgo.info/archives/3246.html
  http://blog.csdn.net/alanbj/article/details/39828041


四、编译linux平台需要的库(linux平台需要的库即.a文件)
  linux下默认应用ninja, 若是须要应用make的话, 指定 exportGYP_GENERATORS=make
  ps:android只支撑ninja编译。
  命令:(trunk或者src目录下)
      exportGYP_GENERATORS=make
      gclient runhooks(这步不能少)
      make


待make完成后你应该能在trunk/out/debug目录下发现大量 .a格式的文件。
错误解决:make:*** 没有规则可以创建“Makefile”需要的目标“../supplement.gypi”。停止
解决:把src\chromium\src\third_party\webrtc目录下的supplement.gypi文件拷贝到跟src同级目录
 
五、构建WebRTCDemo生成 .so文件
$ cd webrtc/video_engine/test/android/
$ ndk-build


成功后会生成libwebrtc-video-demo-jni.so 。
阅读(2846) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~