WebRTC:如何编译Windows版本的WebRTC(M66)

我主要做安卓上的WebRTC,然而为了读懂源码,不得不使用PC版本来调试源码。so...

 

环境: Windows 10,Visual Studio 2017(企业版),Python,depot_tools

VS 2017下载器链接 https://download.csdn.net/download/caoshangpa/10410923

注意:2017版本的下载器如果提示因为网络原因下载不了,那可能是因为缺少了Visual Studio Installer,可以想办法先下载一个Visual Studio Installer,然后在运行下载器(下载Visual Studio Installer可以先点击官网中的下载器,待下载器自动下载完Installer之后,关掉下载器,再运行本链接中的下载器。

用下载器安装VS2017时,要选择桌面C++开发功能以及MFC and ATL support。另外,WIN10 SDK必须安装10.0.15063版本,其余版本可能导致编译失败。下面是我安装时选择的组件。

Python下载链接 https://www.python.org/ftp/python/2.7.9/python-2.7.9.amd64.msi   (还要设置环境变量)
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 Studio\2017\Enterprise #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作为启动项,另外在别的机器上启动一个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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章