Ubuntu 14.04下編譯WebRTC
這兩天在Ubuntu Server 14.04下編譯了一遍WebRTC,記錄了過程,放在這裡,有需要的朋友可以參考。
幾點提示:
- 我使用的是Ubuntu Server 14.04,上面沒開發環境,也沒桌面,從零開始配置。
- 需要連線VPN才可以完成原始碼的下載和更新,以及部分依賴的安裝
編譯過程
首先要安裝一些基礎包,比如g++、python等,使用下面的命令:
sudo apt-get install g++
sudo apt-get install python
然後就是下面的步驟了,照著做就行了。有一些小細節,我都貼出來了。
注意我編譯的是Linux版本的WebRTC,native程式碼,想用編譯出來的庫檔案來做開發。
- 1) 建立資料夾
在你使用的使用者目錄下執行:
mkdir webrtc
cd webrtc
- 2) 安裝git
sudo apt-get install git
- 3) 安裝 svn
sudo apt-get install subversion
- 4) 安裝depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=$PATH:`pwd`/depot_tools
也可以在bashrc中新增一個export命令,使用者登入時自動配置PATH,注意將PATH_TO_YOUR_WEBRTC_DIR替換為你的實際路徑:
vim ~/.bashrc
# 檔案末尾新增這個命令
export PATH=$PATH:$PATH_TO_YOUR_WEBRTC_DIR/depot_tools
- 5) 同步程式碼
執行下列命令序列即可:
mkdir webrtc-checkout
cd webrtc-checkout
fetch --nohooks webrtc
gclient sync
此時我們在webrtc-checkout目錄下,獲取原始碼後,會建立一個src目錄。
- 6) 安裝編譯依賴
直接使用WebRTC提供的install-build-deps.sh指令碼來安裝所有依賴(指令碼安裝的依賴有點多,有一些已經不需要了,不過沒關係)。
注意我們是在webrtc-checkout目錄下執行
./src/build/install-build-deps.sh
指令碼使用sudo來安裝依賴,你需要多次輸入密碼,否則就會停在那裡……
部分依賴庫也會要你輸入Y或N,你不輸入,也會停在那裡……
我在Ubuntu Server 14.04上執行,安裝字型時彈出了同意協議的介面,確認後才能繼續。按左右方向鍵可以選中console顯示的介面上的Yes或Ok按鈕。
- 7) 生成ninja專案檔案
需要進入webrtc-checkout/src目錄下來執行相關命令。
生成debug版ninja專案檔案:
gn gen out/Default
生成release版ninja專案檔案:
gn gen out/Default --args='is_debug=false'
要清空ninja專案檔案:
gn clean out/Default
我生成的release版,截個圖:
使用gn非常快,沒反應過來呢,Done!
- 8) 編譯
需要進入webrtc-checkout/src目錄下來執行下面的命令:
ninja -C out/Default
再來個編譯中的圖:
3306個檔案,編譯半個小時左右,完成後:
好像沒什麼可看的……
編譯好的SDK
預設編譯的是靜態庫和可執行檔案。
進入 out/Default 資料夾,執行ls命令,會看到編譯出來各種可執行程式,比如stunserver、relayserver,如下圖:
如果想知道.a在哪裡,執行find ./ -name *.a
可以看到下面的結果:
想把.a檔案拷貝到一個地方,開發時方便引用,可以執行下列命令:
mkdir ../lib
find ./ -name *.a -exec cp {} ../lib \;
上面兩個命令,會在out目錄下建立一個lib資料夾,把編譯生成的所有.a檔案拷貝過去。然後開發時就方便了。
標頭檔案就在src/webrtc下面,比如api目錄。直接引用就可以了。
參考文件
參考WebRTC的官方文件即可完成編譯:
關於WebRTC的學習資料,我之前整理了一個文章: