WebRTC学习(二)Windows10平台WebRTC编译(VS2017)

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博客    )

                   

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值