我主要做安卓上的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