1、Visual Studio 2017安装
WebRTC用到了很多C++最新特性,所以编译最新WebRTC代码VS要求为2017(>=15.7.2) 版本。
2、安装SDK调试工具
由于最新WebRTC源码要求10.0.18362及以上Win10 SDK。所以请下载10.0.18362 或以上的Win10 SDK。
由于10.0.18362 Win10 SDK存在于VS2019安装选项中,VS2017安装选项不带有该SDK,所以使用VS2017得从Win10 SDK下载另外下载最新Win10 SDK,或者再装个VS2019选择安装该SDK即可。
3、depot_tools安装
该depot_tools目录的路径加到系统环境变量Path里,然后把该路径移到最前面(避免已安装的python与git造成影响)
4、获取WebRTC源码(我这边是阿里云上提前下载好)
5、编译工程
WebRTC默认使用Ninja作为编译系统,Ninja工程文件通过GN生成,由于我们需要使用VS进行代码编辑调试等,所以使用GN生成Ninja工程时需要配置--ide=vs
生成VS的工程文件。
打开cmd,具体的操作一次执行如下指令:
set PATH=%PATH%;%USERPROFILE%\depot_tools
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编译
之后执行cd webrtc/src
gn gen out/Default --ide=vs2017 #生成VS2017解决方案
之后,我们可以在src\out\Default
下得到 VS2017的all.sln解决方案文件。
如果需要Release编译,通过如下命令生成工程文件:
gn gen out/Default --ide=vs2017 --args="is_debug=false"
生成工程文件后,就可以在src
目录下执行编译命令
ninja -C out/Default
6、win10下vs2017编译webrtc报错误
(1)gn时一直报如下信息:
Exception: Visual Studio Version 2017 (from GYP_MSVS_VERSION) not found.
具体原因是src\build\vs_toolchain.py
# Note that this code is used from
# build/toolchain/win/setup_toolchain.py as well.
version_as_year = GetVisualStudioVersion()
# The VC++ >=2017 install location needs to be located using COM instead of
# the registry. For details see:
# https://blogs.msdn.microsoft.com/heaths/2016/09/15/changes-to-visual-studio-15-setup/
# For now we use a hardcoded default with an environment variable override.
for path in (
os.environ.get('vs%s_install' % version_as_year),
os.path.expandvars('%ProgramFiles(x86)%' +
'/Microsoft Visual Studio/%s/Enterprise' %
version_as_year),
os.path.expandvars('%ProgramFiles(x86)%' +
'/Microsoft Visual Studio/%s/Professional' %
version_as_year),
os.path.expandvars('%ProgramFiles(x86)%' +
'/Microsoft Visual Studio/%s/Community' %
version_as_year),
os.path.expandvars('%ProgramFiles(x86)%' +
'/Microsoft Visual Studio/%s/Preview' %
version_as_year)):
if path and os.path.exists(path):
return path
raise Exception('Visual Studio Version %s (from GYP_MSVS_VERSION)'
' not found.' % version_as_year)
解决办法:
在环境变量中添加vs2017_install,值为安装路径,例如我的安装路径如下:
(2)编译过程报错
主要是因为就是windows系统上未安装Pywin32模块,要安装对应python版本的pywin32,如果下载的pywin32,安装时无法识别路径,一般情况下是因为pywin32和本地的python版本对不上,可以尝试重新下载一个pywin32或者换旧一点的python版本。
cmd中输入python查看版本信息,我这里自己分别下载了Python的版本和pywin32(具体操作可以参考:如何下载和安装pywin32(亲测有效)_我的光荣的博客-CSDN博客 )