windows webrtc 编译

下载步骤:

1、使用下载谷歌的源码要F墙,别信网上的各种国内镜像代理,包括学而思和声网的,反正我本人测试都不行。

     学而思镜像:https://github.com/webrtc-mirror/mirror 

      为了能正确下载,我还去关注了他们的微信公共号,操作步骤见网页,

      测试结果本地报错:third_party/capatult 这个模块一直下载失败,显示服务器不允许下载未经许可的对象。

      

     声网镜像:https://rtcdeveloper.com/t/topic/14914

     测试结果本地报错: src/base  src/buildtools src/tools等 一共四个子模块都下载失败。

 

     奉劝大家,别走捷径,他们的镜像可能一般情况下没人去维护吧,花了好多时间还是不行很浪费时间,就中规中矩的翻过去下载,多尝试几次总会成功。

     

      安装好你要翻过去所需要的软件,具体步骤略过。

      首先要确保你真正是否翻过去了,尝试打开google,随便搜索下,看看是否正常。

     记下代理所用的端口号,我们要用的是http的代理端口,不是sock的。

   

 

 

 

2、安装depot_tools

       git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

       这个文件夹包含谷歌的多远代码管理工具 gclient 

       目录下结构:

      

 

 

   

     然后要将这个目录加到系统的path中,方便以后直接使用命令行进行操作。不然执行命令会提示命令不识别。

3、安装python2.7版本 以及 pywin32

     下载路径墙内的网打开下载可能会比较慢。

     下载路径:   https://www.python.org/getit/  

      

 

 

 

      下载路径:https://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/

 

 

 

 

  

       安装完以后把python2.7的安装路径也要加到系统的path路径下。

    我本地电脑是这样的:

   

 

 

 4、安装VS2019

    下载路径:       https://visualstudio.microsoft.com/zh-hans/vs/

    在装VS的时候要记得装几个模块 

    1)win10 sdk 10.0.173以上,下面只是参考,其他的可以选装

         

 

 

 

       

     2)WIN10 SDK还需要安装Debugging Tools,安装步骤为 控制面板 → 程序 → 程序和功能 → 选中“Windows Software Development Kit” → 变更 → Change → 勾选 “Debugging Tools For Windows” → Change。

          

 

 

 

   

5、配置环境变量:

DEPOT_TOOLS_UPDATE=0                                 #不更新depot_tools
DEPOT_TOOLS_WIN_TOOLCHAIN=0                          #编译时使用本机VS工具链
GYP_MSVS_VERSION = 2019                              #指定VS版本
GYP_MSVS_OVERRIDE_PATH = C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise  #vs安装路径,替换成自己的
GYP_GENERATORS=msvs-ninja,ninja                      #使用ninja编译
http_proxy=http://127.0.0.1:38855                         #本机代理端口                          
https_proxy=http://127.0.0.1:38855                       #本机代理端口   这个端口就是本文最上面1那节最后说的端口。

 

下面这个步骤我不确定是否真的很有必要,为保证万一还是建议做了:

depot_tools的安装目录下,新建一个文件

 

 

 文件内容为:

 

 

 最下面的port是代理端口

  新增加一个环境变量  NO_AUTH_BOTO_CONFIG  路径为 G:\webrtc\git_depot\depot_tools\boto.cfg   //自己的文件路径

我本地显示如下:

 

如果在 VS_Toolchain上报错的话 增加环境变量

 # 告诉depot_tools使用我们本机的VS进行编译

set DEPOT_TOOLS_WIN_TOOLCHAIN=0

 

6、开始下载源码方法有两种:

     第一种:

    命令行执行:

     fetch --nohooks webrtc  这个下载源码时间会很久,下载差不多要9个多G的文件。

    执行完可能会报一些错误,这个没关系,你去下载路径下看下文件路径,是不是文件夹都有,这个后面会执行命令更新本地代码。

   

 

 

 

  文件路径大概是这样,然后执行命令:

   gclient sync

   这一步很关键,这个命令必须执行成功,否则子模块代码拉取的是不完整的。

  执行成功如下显示:

 

 

 

  如果出现失败,就多执行几次这个命令,或者带上参数执行,gclient sync --force 

  这个可能会与你的F墙服务器的稳定有关系,失败了报错了不怕,重复执行几次。

  如果出现 error server not allow to .......这种的,基本就是你与谷歌的源代码服务器连接失败。如图所示:

 

 

 

 

  如果出现 cd ....(一个文件目录)   &&  git rebase --  (0a423r324aadf24332323) 这种的,去文件目录下,删除 .git文件夹,然后重新执行命令

 

  第二种方法:

        git clone https://chromium.googlesource.com/external/webrtc

         gclient config https://webrtc.googlesource.com/src.git

        gclient sync

     先用git下载代码 然后同步config再执行sync

    

    本人测试过 用git的bash和cmd 效果是一样的。

 

7、编译 

      先编译windows下:

      gn gen out/Default   //不带vs工程,编译的只是一些测试工具和demo

      gn gen out/project --ide=vs      //编译出来带有vs的功能 all.sln

 

    release版本:gn gen out/Release --args="is_debug=false" 

 

       ninja -C out/Default

 

64位debug和release:

gn gen out/Debug --ide=vs2015

gn gen out/Release --ide=vs2015 --args="is_debug=false"

32位debug和release:

gn gen out/Debug_x86 --ide=vs2015 --args="target_cpu=\"x86\""

gn gen out/Release_x86 --ide=vs2015 --args="is_debug=false target_cpu=\"x86\""


//gn gen out/Debug_x86 --ide=vs2015 -args="target_cpu=\"x86\" rtc_include_tests=false rtc_use_h264=true rtc_initialize_ffmpeg=true ffmpeg_branding=\"Chrome\""

 

如果你已经使用 gn gen 生成过构建文件,想看看这个版本的构建文件都指定了什么参数,可以使用下面命令:
gn args out/Release --list
它会列出所有的 build arguments 和对应的文档,以及当前值。

默认编译的库是MT和MTD的,要想生成-MD的要改源码

 

change src/build/config/win/BUILD.gn: in the statement config("default_crt") replace

#Desktop Windows: static CRT
configs = [":static_crt"]

to configs = [":dynamic_crt"]

 

    【2021.04.14】1、基于remotes/branch-heads/70 切分支 执行个client sync 拉取依赖后 执行gn的时候 提示要至少使用VS2017以上的版本。

         2、65分支 执行ninja的时候 提示 LINK : fatal error LNK1104: 无法打开文件“advapi32.lib”  根据博文

              https://www.jianshu.com/p/14ad10b7bcf9

          提示要安装 下载Windows 10 SDK,使用10.0.15063版本 win7机器 win sdk 一直安装失败、win10 才安装成功

 【2021.05.06】 Exception: No supported Visual Studio can be found. Supported versions are: 16.0(2019), 15.0 (2017).

        最新的master分支不支持2017以下的版本了

   【2021.05.07】 编译报错提示找不到 mt.exe 解决办法:用everything工具或者在C盘搜下这个mt.exe 会在windows sdk kit的目录下 找到这个文件,找好是32位还是64位 然后复制粘贴到 C盘 windows\\system32目录下

 

 

 

     

     

 

       

  

posted @ 2020-03-18 13:20  HappyCoder_1  阅读(1595)  评论(5编辑  收藏  举报