本文简单介绍如何在Ubuntu18.04 上,编译WebRTC Android版本。

安装工具

  需要用到depot_tools工具来下载webrtc源码。

安装 depot_tools

  git 命令获取 depot_tools。

# git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

  配置坏境变量:

# echo "export PATH=$PWD/depot_tools:$PATH" > $HOME/.bash_profile
# source $HOME/.bash_profile

  检测配置是否成功:

$ echo $PATH

下载源码

默认master分支

  默认是下载当前最新的源码,即Master分支。

# mkdir webrtc
# cd webrtc
# fetch --nohooks webrtc_android
# gclient sync

特定分支

  如果要编译特定分支,如M74分支,需指定特定分支进行同步。拉取M74分支使用如下命令:(分支提交记录可参考WebRTC分支提交记录

gclient sync -r cc1b32545db7823b85f5a83a92ed5f85970492c9  --force
# commit id 可通过切换到该分支,查看git log,最上面那条记录即为当前分支最新的提交记录

编译

安装编译依赖

  官网只给出第一条,建议两条命令都执行。

# ./src/build/install-build-deps.sh
# ./src/build/install-build-deps-android.sh

编译

 编译可指定带或不带AppRTCMobile,带AppRTCMobile生成的Debug目录较小,不带AppRTCMobile生成的文件较多,也更大。

# source build/android/envsetup.sh
# gn gen out/Debug --args='target_os="android" target_cpu="arm64"'
# ninja -C out/Debug AppRTCMobile

  编译过程中,如果没有出错,即表示编译成功。

编译组合

a)编译arm debug版本

gn gen out/Debug_arm --args='target_os="android" target_cpu="arm"'
    ninja -C out/Debug_arm

b)编译arm64 debug版本

gn gen out/Debug_arm64 --args='target_os="android" target_cpu="arm64"'
    ninja -C out/Debug_arm64

c)编译arm release版本

gn gen out/Release_arm --args='target_os="android" target_cpu="arm" is_debug=false'
    ninja -C out/Release_arm

d)编译arm64 release版本

gn gen out/Release_arm64 --args='target_os="android" target_cpu="arm64" is_debug=false'
    ninja -C out/Release_arm64

此处在生成的out/*名字上做区别,需要自取。

参考

  编译Android版的WebRTC
    https://blog.csdn.net/ericbar/article/details/83114015
  WebRTC iOS&OSX 库的编译
    http://www.enkichen.com/2017/05/12/webrtc-ios-build/

最新文章

  1. scanf()中清除输入缓冲区的几种方法归纳
  2. MFC 鼠标 移动到某控件时 修改鼠标形状为手的形状
  3. 解决虚拟机 MAC10.9 不能设置1366*768分辨率问题
  4. mybatis的xlm的sql
  5. Amazon Kinesis Producer Library 使用记录
  6. How to learn linux device driver
  7. CentOS 6.0下面安装JDK7
  8. bzoj 2402: 陶陶的难题II 二分答案维护凸包
  9. Webdriver常用的元素定位
  10. 【Loadrunner】初学Loadrunner——安装
  11. Linux命令大杂烩
  12. 设计shell脚本选项:getopt
  13. 【Static Program Analysis - Chapter 1】 Introduction
  14. IDEA 码云 安装
  15. Nginx中的安全配置
  16. python--中的文件操作
  17. LeetCode-Largest Rectangle in Histogram O(n) 详析-ZZ
  18. 解决iText2.0.8+freemark导出pdf不支持base64的解决办法
  19. 使用AutoIT检测已安装软件,并将结果保存在桌面
  20. NAO机器人

热门文章

  1. rug
  2. [学习笔记] [数据分析] 01.Python入门
  3. 机器学习实战书-第二章K-近邻算法笔记
  4. IDEA IntelliJ/ DataGrip 修改自动补全快捷键
  5. 教你如何关闭IIS服务
  6. php 设置临时内存和超时设置脚本最大执行时间
  7. phpStorm自动生成___jb_tmp___文件
  8. v-bind和v-model的本质区别和作用域
  9. mq解决分布式事物问题【代码】
  10. 洛谷 题解 P5534 【【XR-3】等差数列】