win10下 webrtc下載和編譯 for vs2017


一、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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章