webrtc vs2017/vs2019编译 / android版本编译

**********************************************************windows平台编译***********************************************************


https://blog.jianchihu.net/webrtc-build-vs2017.html?replytocom=6827
***********************************************************************************************参考博客(很详细)
以下webrtc编译过程仅是对上述博客编译过程进行补充

1.下载depot_tools
https://storage.googleapis.com/chrome-infra/depot_tools.zip
解压并将其路径添加至环境变量

2.安装python2.7 并勾选pip选项
将Python2.7和其目录下Scripts文件夹添加至系统环境变量(顺序要在depot_tools前面)
pip install pypiwin32(m79之后似乎不需要,m79之前的分支需要安装该模块)

3.安装vs2017/vs2019 需要两个sdk 一个17134 一个>=18362
如上述博客所说最新版本的gn编译需要>=18362
但是打开编译生成后的vs工程可以发现,工程使用的sdk版本依旧是17134

4.代理当前使用http://chaoxi.us/
cmd命令行键入set http_proxy=http://127.0.0.1:7890 & set https_proxy=http://127.0.0.1:7890 //端口根据自己代理端口填写

set WINDOWSSDKDIR = D:\Windows Kits\10  //SDK路径
set DEPOT_TOOLS_WIN_TOOLCHAIN = 0
set GYP_MSVS_VERSION = 2019
set GYP_MSVS_OVERRIDE_PATH = C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
set GYP_GENERATORS=msvs-ninja,ninja 

set WINDOWSSDKDIR = D:\Windows Kits\10
set DEPOT_TOOLS_WIN_TOOLCHAIN = 0
set GYP_MSVS_VERSION = 2017
set GYP_MSVS_OVERRIDE_PATH = C:\Program Files (x86)\Microsoft Visual Studio\2017\Community
set GYP_GENERATORS=msvs-ninja,ninja 
***********************************************************************************************前置条件
mkdir webrtc-checkout
cd webrtc-checkout
fetch --nohooks webrtc
gclient sync

5.peerconnection demo调试

笔者编译了m75,m76,m77,m78,m79以及最新的开发流,均会出现peerconnection_client主动呼叫崩溃的情况(似乎是启动camera时候崩溃)
因此如果是初学webrtc想要借助demo了解,webrtc的流程,建议切至m74分支上编译 ps:vs2017/vs2019均可编译该分支
如果已经熟悉webrtc要用其开发,可以使用最新的代码编译。
cd src
gn gen --ide=vs out/Default 生成工程
ninja -C out/Default 编译

再编译仅需删除out/Default

如提示缺失 需gclient sync


**********************************************************android平台编译***********************************************************
1. 安装ubuntu 18.04
http://mirrors.aliyun.com/ubuntu-releases/18.04/

2. 图形界面 -----> SoftWare & Upadte -----> Ubuntu SoftWare -----> Download from -----> Other -----> Select best server
自动帮你选择最合适的源

3. 软件更新与安装
sudo apt update
sudo apt upgrade
sudo apt install vim 
sudo apt install openssh-client
sudo apt install openssh-server
sudo apt install curl
sudo apt install net-tools
sudo apt install python
sudo apt install git

4. 代理当前使用http://chaoxi.us/ 开启直连模式(allow lan)
虚拟机使用net连接,.bashrc配置代理端口
export ALL_PROXY=http://172.16.74.113:7890
export HTTP_PROXY=http://172.16.74.113:7890
export HTTPS_PROXY=http://172.16.74.113:7890 //ip使用主机ip
source ./bashrc使其生效

5. 安装和设置代码下载工具
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=$PATH:/home/webrtc/depot_tools //写在 .bashrc 里

输入gclient 等待更新完成 直至usage出现

6. 代码拉取
mkdir webrtc_android
cd webrtc_android # 注意接下来执行命令始终在这个目录下
fetch --nohooks webrtc_android

代码拉取完再使用gclient sync,更新android_tools

这里可能会有提示使用NO_AUTH_BOTO_CONFIG,等待gclient sync更新完成
创建.boto文件输入
[Boto]
proxy = 172.16.74.113
proxy_port = 7890
保存文件
写入export NO_AUTH_BOTO_CONFIG=/home/webrtc/.boto到.bashrc中source ./bashrc使其生效

再次使用gclient sync等待其更新完成

7. 进入src/build目录
执行./install-build-deps-android.sh //进行必要环境配置

8. 工程生成和编译
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/*名字上做区别,需要自取。

如提示缺失 需gclient sync

9. 对于在另一台机器上直接使用代码拉取更新打包好的webrtc版本
需要再执行第3步和第7步

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值