一、vs2017安裝和準備
1.1 安裝
安裝“使用C ++進行桌面開發”組件和“MFC和ATL支持”子組件,需要注意的是win10 SDK,至少需要10.0.17134.0版本,否則會出現問題。
還必須安裝SDK調試工具(The SDK Debugging Tools)。如果通過Visual Studio安裝程序安裝了Windows 10 SDK,則可以通過以下方式安裝它們:控制面板→程序和功能→選擇“Windows軟件開發工具包”→更改→更改(Change)→選中“Windows調試工具(Debugging Tools For Windows)” “→改變。
1.2 設置環境變量
vs2017_install,值爲vs2017的安裝路徑
注意:
Exception: Visual Studio Version 2017 (from GYP_MSVS_VERSION) not found.
這個錯誤的原因就是沒有設置vs2017_install。
到此vs2017準備完畢。
二、安裝Python2.7 並設置它的環境變量
2.1 安裝python
略過
2.2 升級pip
python -m pip install --upgrade pip
2.3 安裝pypiwin32
不然編譯過程中會報錯
pip install pypiwin32
三、可訪問外網的環境
我用的是藍燈。速度很好
四、下載和設置depot_tools
4.1 下載
點擊下載windows版的Depot_tools
將depot_tools.zip解壓,並將解壓後的depot_tools目錄路徑加入到系統環境變量中的path裏面去。
4.2 設置代理
爲了讓depot可以正常下載和編譯源碼,需要先新建一個.boto文件(如E:\depot_tools\http_proxy.boto)並輸入代理和端口(端口號由你使用的代理服務器決定,可以在“網絡和Internet設置”–“代理”中查詢),
[Boto]
proxy= 127.0.0.1
proxy_port=4388
在環境變量中增加NO_AUTH_BOTO_CONFIG=E:\depot_tools\http_proxy.boto
沒有設置會報錯誤:
五、獲取webrtc源碼
5.1 環境變量
在環境變量中增加DEPOT_TOOLS_WIN_TOOLCHAIN,它的值設置爲0,這是爲了告訴腳本,在編譯的時候使用我們本機的vs環境。
5.2 設置代理
(有全局代理的忽略此處。)
(在此之前,你要先保證你的代理正在工作,是有效的)
打開命令窗口cmd(在powershell下設置之後,同步代碼無效)
輸入兩行命令:
set http_proxy=127.0.0.1:4388
set https_proxy=127.0.0.1:4388
設置完代理後,請不要關閉cmd窗口,後續操作仍要在該窗口進行,否則仍需要重新設置代理。
5.3 使用depot_tools獲取webrtc源碼
在命令窗口(已設置代理)中設置臨時環境變量,也可以直接寫死在環境變量裏。
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 = E:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise #vs安裝路徑,替換成自己的
set GYP_GENERATORS=msvs-ninja,ninja #使用ninja編譯
官方文檔
然後在cmd中輸入以下命令:
mkdir webrtc-checkout #這是創建一個目錄,創建之前最好cd到合適的地方
cd webrtc-checkout # 進入到我們剛剛創建的目錄中
fetch --nohooks webrtc # 獲取代碼
gclient sync # 當過程中斷時,我們可以使用該命令恢復並繼續
下載過程中如果下載不全或者缺失gn.exe啥的,一定是自己代理軟件問題,可以修改成全局再gclient sync一次即可
錯誤curl 18 處理(代理網絡不穩定,基本都需要設置緩存區)
git config --global http.postBuffer 524288000 //加大緩存區
5.4 生成解決方案
當代碼獲取完成後,cd到webrtc-checkout/src 源碼目錄,繼續輸入指令來生成解決方案
cd webrtc-checkout/src
gn gen out/Default --ide=vs2017 #生成VS2017解決方案
5.5 編譯生成
也可以不執行這一步而用使用vs編譯,在vs界面:文件->打開->項目/解決方案->webrtc-checkout/src/out/Debug/all.sln 然後生成。
ninja -C out/Default #開始編譯
然後在源碼中out/Debug目錄下找到peerconnection_client.exe和peerconnection_server.exe,這兩個分別是服務器和客戶端的demo,如果想調試音視頻引擎,就將vs界面 解決方案資源管理器中examples下的peerconnection_client作爲啓動項,另外在別的機器上啓動一個client和server就能單步調試了(一定要有攝像頭)。
編譯的後兩步過程也可以是
//下面一條指令生成VS2017的win32 debug工程
gn gen out/Debug --ide=vs2017 --args="is_debug=true target_cpu=\"x86\""
//下面一條指令生成VS2015的win32 release工程
gn gen out/Release --ide=vs2017 --args="is_debug=false target_cpu=\"x86\""
//以上方法均建議使用ninja方法編譯,速度快
ninja -C out/Debug
//或者
ninja -C out/Release
具體的參數參考GN文檔
參(chao)考(xi)鏈接
WebRTC:如何編譯Windows版本的WebRTC
在windows上vs2017 編譯webrtc
Win10+vs2017 webrtc下載和編譯
https://webrtc.org/native-code/development/
Windows平臺WebRTC編譯-VS2017