WebRTC:如何編譯Windows版本的WebRTC(M66)

我主要做安卓上的WebRTC,然而爲了讀懂源碼,不得不使用PC版本來調試源碼。so...

 

環境: Windows 10,Visual Studio 2017(企業版),Python,depot_tools

VS 2017下載器鏈接 https://download.csdn.net/download/caoshangpa/10410923

注意:2017版本的下載器如果提示因爲網絡原因下載不了,那可能是因爲缺少了Visual Studio Installer,可以想辦法先下載一個Visual Studio Installer,然後在運行下載器(下載Visual Studio Installer可以先點擊官網中的下載器,待下載器自動下載完Installer之後,關掉下載器,再運行本鏈接中的下載器。

用下載器安裝VS2017時,要選擇桌面C++開發功能以及MFC and ATL support。另外,WIN10 SDK必須安裝10.0.15063版本,其餘版本可能導致編譯失敗。下面是我安裝時選擇的組件。

Python下載鏈接 https://www.python.org/ftp/python/2.7.9/python-2.7.9.amd64.msi   (還要設置環境變量)
depot_tools是Google的代碼工具庫,可用於遷出/入以及編譯Google代碼,需要翻牆下載  (注意要使用windows版本的depot_tools,否則可能會出現錯誤)。

 

源碼:這就不用說了,主要靠翻牆......

編譯:打開DOS命令臺(最好是搜索  適用於vs2017的 x86 本機工具命令提示)。

然後進入源碼文件夾中

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 = C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise #vs安裝路徑,替換成自己的
set GYP_GENERATORS=msvs-ninja,ninja #使用ninja編譯

上面的  GYP_MSVS_OVERRIDE_PATH  最好不要替換,因爲環境中有的地方已經把位置寫死了,單純改一處可能不管用。

最後進入源碼下編譯

cd webrtc-checkout/src
gn gen out/Default --ide=vs2017 #生成VS2017解決方案
ninja -C out/Default #開始編譯   
也可以不執行上面那一步而用使用vs編譯,在vs界面:文件->打開->項目/解決方案->webrtc-checkout/src/out/Debug/all.sln  然後生成

然後在源碼中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

 

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