**********************************************************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步