ubuntu14.04编译webrtc

参考如下的文章做,基本上就可以了。

我本人是验证过了的。


///

根据他人下载好的代码编译

// 如下内容大部分是转载的,我加上了少量需要注意的地方

整整快一年没有写博客了,最近基于Google开源的WebRTC项目做了一款音视频聊天的即时通信项目,期间在下载WebRTC代码时就碰到了一些问题,在此以作记录,也希望能够帮助到正在下载编译WebRTC代码中碰到类似问题的童鞋们


1). 准备环境

1. Ubuntu14.04 LTS 系统

2. 准备一个稳定的速度还可以的VPN 或者 VPS ,这个很重要,大家都懂,大部分下载代码失败都是因为访问google服务失败导致的.(本人用的Digital Ocean, 之前试过几个VPN都以失败而告终,蛋都碎了,要么是不稳定,要么速度非常慢,最长一次用了15个小时都没有下载成功)

3. 安装下载$编译webrtc代码所需工具

a. jdk (本人用的  sun jdk1.6.0_45)

jdk下载路径:  http://ghaffarian.net/downloads/Java/JDK/

配置到环境变量中

b. git  ( 版本 1.9.1 ) 

安装:  sudo apt-get install git

c. gclient 

1.安装: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

2.配置到环境变量中 ,至于怎么配置,不知道的google一下

// Begin -- add by oldmtn

和配置jdk路径差不多,就是将depot_tools的路径加到/etc/profile里面

// End -- add by oldmtn

d. 安装如下工具 ( 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 a 64-bit system:

lib32asound2-dev

ia32-libs


2). 下载代码

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

( 煎熬的一步,我同步下来的代码有7.1G之大,里面包括NDK、SDK等其他tools   之前用VPN都败在这里,后来用VPS,只用了6分多钟,哎,说点什么呢......尼玛,国内程序员就是苦逼)  

注意,若长时间出现  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.)

./build/install-build-deps.sh  (trunk目录下)

// Begin -- add by oldmtn

这里除了要安装ant外,还需要安装svn

// End -- add by oldmtn

3. gclient runhooks --force (下载编译所需的build文件等信息)

4. 编译 ( trunk目录下 )

编译Debug版:  ninja -C out/Debug

编译Release版: ninja -C out/Release


参考:

1. http://blog.csdn.net/chenyafei617/article/details/38085409



根据官方网站编译

这部分就不写,只要把官方的内容读透了,基本上就没有问题的。


问题:官方编译的静态库不完全

比如libcommon_audio.a这个静态库,根据官方内容,不做任何修改,其大小为:13.3KB,很明显,这个静态库有问题。
在我调整编译选项后的libcommon_audio.a的大小为692.3kb。这个问题困扰我好久,好了好几天才解决。

办法:找到ninja.py(webrtc_android/src/chromium/src/tools/gyp/pylib/gyp/generator),大概1200行左右找到alink_thin,改为alink.
然后重新执行webrtc_android/src/webrtc/build/gyp_webrtc生成ninja脚本文件。再编译就可以了。

参考:(前面几个给出了问题的原因,特别是5给出了解决方案)
1. https://review.webrtc.org/1349004/
2. https://groups.google.com/forum/#!msg/discuss-webrtc/dkfCMWaddXg/P4voT-h-9P0J
3. https://groups.google.com/forum/#!topic/discuss-webrtc/dkfCMWaddXg
4. https://bugs.chromium.org/p/webrtc/issues/detail?id=1807
5. http://cdn.verydemo.com/demo_c441_i128225.html


问题:编译动态库

在gyp中添加flags -visibility=default


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值