安装“使用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)” “→改变。
vs2017_install,值为vs2017的安装路径
注意:
Exception: Visual Studio Version 2017 (from GYP_MSVS_VERSION) not found.
这个错误的原因就是没有设置vs2017_install。
到此vs2017准备完毕。
略过
python -m pip install --upgrade pip
不然编译过程中会报错
pip install pypiwin32
我用的是蓝灯。速度很好
点击下载windows版的Depot_tools
将depot_tools.zip解压,并将解压后的depot_tools目录路径加入到系统环境变量中的path里面去。
为了让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
没有设置会报错误:
在环境变量中增加DEPOT_TOOLS_WIN_TOOLCHAIN,它的值设置为0,这是为了告诉脚本,在编译的时候使用我们本机的vs环境。
(有全局代理的忽略此处。)
(在此之前,你要先保证你的代理正在工作,是有效的)
打开命令窗口cmd(在powershell下设置之后,同步代码无效)
输入两行命令:
set http_proxy=127.0.0.1:4388
set https_proxy=127.0.0.1:4388
设置完代理后,请不要关闭cmd窗口,后续操作仍要在该窗口进行,否则仍需要重新设置代理。
在命令窗口(已设置代理)中设置临时环境变量,也可以直接写死在环境变量里。
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 //加大缓存区
当代码获取完成后,cd到webrtc-checkout/src 源码目录,继续输入指令来生成解决方案
cd webrtc-checkout/src
gn gen out/Default --ide=vs2017 #生成VS2017解决方案
也可以不执行这一步而用使用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文档
WebRTC:如何编译Windows版本的WebRTC
在windows上vs2017 编译webrtc
Win10+vs2017 webrtc下载和编译
https://webrtc.org/native-code/development/
Windows平台WebRTC编译-VS2017