下載步驟:
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進行編譯
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目錄下