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目錄下

 

 

 

     

     

 

       

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM