1. 程式人生 > >Ubuntu 14.04下編譯WebRTC

Ubuntu 14.04下編譯WebRTC

這兩天在Ubuntu Server 14.04下編譯了一遍WebRTC,記錄了過程,放在這裡,有需要的朋友可以參考。

幾點提示:

  1. 我使用的是Ubuntu Server 14.04,上面沒開發環境,也沒桌面,從零開始配置。
  2. 需要連線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的學習資料,我之前整理了一個文章: