webrtc源码下载编译-WebRTC:如何编译Windows版本的WebRTC(M66)

我主要是在Android上做WebRTC,但是为了看懂源码,不得不使用PC版来调试源码。 所以...

环境:Windows10、VisualStudio2017(企业版)、Python、depot_tools

VS2017下载链接

注意:如果2017版下载器提示由于网络原因无法下载,可能是因为缺少VisualStudioInstaller。 你可以想办法先下载一个VisualStudioInstaller,然后运行下载器(要下载VisualStudioInstaller,可以先点击官网下载器手动下载完Installer后,关闭下载器,然后运行这个链接中的下载器。

用下载器安装VS2017时webrtc源码下载编译,必须选择桌面C++开发功能以及MFC和ATL支持。 另外,必须安装WIN10SDK 10.0.15063版本,其他版本可能会导致编译失败。 以下是我在安装过程中选择的组件。

Python下载链接(还要设置环境变量)

depot_tools是Google的代码工具库,可以用来移入/移入并编译Google代码。 需要翻墙下载(注意必须使用windows版本的depot_tools,否则可能会出错)。

源码:不用说了,主要还是靠翻墙……

编译:打开DOS命令控制台(最好搜索vs2017的x86本机工具命令提示符)。

然后进入源码文件夹

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 = C:Program Files (x86)Microsoft Visual Studio2017Enterprise #vs安装路径,替换成自己的
set GYP_GENERATORS=msvs-ninja,ninja #使用ninja编译

最好不要替换里面的GYP_MSVS_OVERRIDE_PATH,因为环境中有些地方已经把位置写死了,单纯改一处可能不行。

最后进入源码并编译

cd webrtc-checkout/src
gn gen out/Default --ide=vs2017 #生成VS2017解决方案
ninja -C out/Default #开始编译   
也可以不执行上面那一步而用使用vs编译,在vs界面:文件->打开->项目/解决方案->webrtc-checkout/src/out/Debug/all.sln  然后生成

然后在源码中的out/Debug目录下找到peerconnection_client.exe和peerconnection_server.exe。 这两个分别是服务端和客户端的demo。 如果要调试音视频引擎,可以使用vs界面解决方案资源管理器中examples下的peerconnection_client作为启动项webrtc源码下载编译,在另一台机器上启动一个客户端和服务端进行单步调试(要有摄像头) 。

编译的最后两步也可以

//下面一条指令生成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