win10下 webrtc下载和编译 for vs2017


一、vs2017安装和准备

1.1 安装

安装“使用C ++进行桌面开发”组件和“MFC和ATL支持”子组件,需要注意的是win10 SDK,至少需要10.0.17134.0版本,否则会出现问题。

还必须安装SDK调试工具(The SDK Debugging Tools)。如果通过Visual Studio安装程序安装了Windows 10 SDK,则可以通过以下方式安装它们:控制面板→程序和功能→选择“Windows软件开发工具包”→更改→更改(Change)→选中“Windows调试工具(Debugging Tools For Windows)” “→改变。
win10下 webrtc下载和编译 for vs2017_第1张图片
win10下 webrtc下载和编译 for vs2017_第2张图片

1.2 设置环境变量

vs2017_install,值为vs2017的安装路径
​​​​win10下 webrtc下载和编译 for vs2017_第3张图片
注意:

Exception: Visual Studio Version 2017 (from GYP_MSVS_VERSION) not found.

这个错误的原因就是没有设置vs2017_install。

到此vs2017准备完毕。


二、安装Python2.7 并设置它的环境变量

2.1 安装python

略过

2.2 升级pip

python -m pip install --upgrade pip

2.3 安装pypiwin32

不然编译过程中会报错

pip install pypiwin32

三、可访问外网的环境

我用的是蓝灯。速度很好


四、下载和设置depot_tools

4.1 下载

点击下载windows版的Depot_tools
将depot_tools.zip解压,并将解压后的depot_tools目录路径加入到系统环境变量中的path里面去。

4.2 设置代理

为了让depot可以正常下载和编译源码,需要先新建一个.boto文件(如E:\depot_tools\http_proxy.boto)并输入代理和端口(端口号由你使用的代理服务器决定,可以在“网络和Internet设置”–“代理”中查询),

[Boto]
proxy= 127.0.0.1
proxy_port=4388

在环境变量中增加NO_AUTH_BOTO_CONFIG=E:\depot_tools\http_proxy.boto
没有设置会报错误:
在这里插入图片描述


五、获取webrtc源码

5.1 环境变量

在环境变量中增加DEPOT_TOOLS_WIN_TOOLCHAIN,它的值设置为0,这是为了告诉脚本,在编译的时候使用我们本机的vs环境。
在这里插入图片描述

5.2 设置代理

(有全局代理的忽略此处。)
(在此之前,你要先保证你的代理正在工作,是有效的)
打开命令窗口cmd(在powershell下设置之后,同步代码无效)
输入两行命令:

set http_proxy=127.0.0.1:4388
set https_proxy=127.0.0.1:4388

设置完代理后,请不要关闭cmd窗口,后续操作仍要在该窗口进行,否则仍需要重新设置代理。

5.3 使用depot_tools获取webrtc源码

在命令窗口(已设置代理)中设置临时环境变量,也可以直接写死在环境变量里。


set DEPOT_TOOLS_UPDATE=0 #不更新depot_tools
set DEPOT_TOOLS_WIN_TOOLCHAIN=0 #编译时使用本机VS工具链
set GYP_MSVS_VERSION = 2017 #指定VS版本
set GYP_MSVS_OVERRIDE_PATH = E:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise #vs安装路径,替换成自己的
set GYP_GENERATORS=msvs-ninja,ninja #使用ninja编译

官方文档
然后在cmd中输入以下命令:

mkdir webrtc-checkout #这是创建一个目录,创建之前最好cd到合适的地方
cd webrtc-checkout  # 进入到我们刚刚创建的目录中
fetch --nohooks webrtc  # 获取代码
gclient sync  # 当过程中断时,我们可以使用该命令恢复并继续

下载过程中如果下载不全或者缺失gn.exe啥的,一定是自己代理软件问题,可以修改成全局再gclient sync一次即可

错误curl 18 处理(代理网络不稳定,基本都需要设置缓存区)

git config --global http.postBuffer 524288000  //加大缓存区

5.4 生成解决方案

当代码获取完成后,cd到webrtc-checkout/src 源码目录,继续输入指令来生成解决方案

cd webrtc-checkout/src
gn gen out/Default --ide=vs2017 #生成VS2017解决方案

5.5 编译生成

也可以不执行这一步而用使用vs编译,在vs界面:文件->打开->项目/解决方案->webrtc-checkout/src/out/Debug/all.sln 然后生成。

ninja -C out/Default #开始编译   

然后在源码中out/Debug目录下找到peerconnection_client.exe和peerconnection_server.exe,这两个分别是服务器和客户端的demo,如果想调试音视频引擎,就将vs界面 解决方案资源管理器中examples下的peerconnection_client作为启动项,另外在别的机器上启动一个client和server就能单步调试了(一定要有摄像头)。

编译的后两步过程也可以是

//下面一条指令生成VS2017的win32 debug工程
gn gen out/Debug --ide=vs2017 --args="is_debug=true target_cpu=\"x86\""
//下面一条指令生成VS2015的win32 release工程
gn gen out/Release --ide=vs2017 --args="is_debug=false target_cpu=\"x86\""
 
//以上方法均建议使用ninja方法编译,速度快
ninja -C out/Debug 
//或者
ninja -C out/Release

具体的参数参考GN文档


参(chao)考(xi)链接

WebRTC:如何编译Windows版本的WebRTC
在windows上vs2017 编译webrtc
Win10+vs2017 webrtc下载和编译
https://webrtc.org/native-code/development/
Windows平台WebRTC编译-VS2017

你可能感兴趣的:(webRTC)