webrtc在ubuntu14.04上的編譯過程(12.04亦可)

來源:互聯網
上載者:User

標籤:setup   更新   star   path   chown   啟用   親測   otl   dev   

轉自:http://blog.csdn.net/xiangjai/article/details/44409751

 

一、虛擬機器環境搭建

1、安裝ubuntu 14.04虛擬機器:

         因為可以屏蔽svn版本問題,如果使用14以下版本svn版本是1.7以下的,在不能下載代碼而是使用程式碼封裝的情況下會遇到因為svn版本不能同步的問題。這個時候需要手動升級svn版本到1.8+

2、開啟root登陸:

         為了啟用root 帳號(也就是設定一個口令)使用:

         sudo passwd root

         當你使用完畢後屏蔽root帳號使用:

         sudo passwd -l root

         這個將鎖住root帳號。  

         如何在終端模式下切換到root身份?

         sudo -s -H

         Password:<在此輸入密碼>

         編輯:

         vi /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

         加入這行,並重啟就行了。

         greeter-show-manual-login=true

 

3、vi無法正常使用改成vim

         sudo apt-get install vim

 

4、安裝ssh(如果不安裝可能會導致win7上的串口登陸串連不上虛擬機器)

         sudo apt-get install openssh-server openssh-client

         vi /etc/ssh/sshd_config

         注釋掉 #PermitRootLoginwithout-password,添加 PermitRootLogin yes

          #Authentication:

          LoginGraceTime120

          #PermitRootLogin without-password

          PermitRootLogin yes

          StrictModes yes

          重啟 ssh  服務

          sudo service ssh restart

 

5、安裝SVN

          sudo apt-get install subversion

 

6、安裝samba :

          參照 http://www.linuxidc.com/Linux/2014-07/104894.htm

 

7、關閉防火牆

         1.關閉ubuntu的防火牆 ufw disable
          2.卸載了iptables        apt-get remove iptables

 

8、安裝nfs伺服器(可有可無):

         #sudo apt-get install nfs-kernel-server

         #sudo mkdir /nfsroot

         #sudo chmod 777 /nfsroot -R

         #sudo chown nobody /nfsroot -R

         #sudo /etc/exports添加如下一行:

          /nfsroot*(rw,sync,no_root_squash)

         #sudo /etc/init.d/nfs-kernel-server restart

         至此,NFS伺服器安裝成功

 

二、配置webrtc環境

1、建立檔案夾

         cd /home/

         mkdir webrtc

         sudo chmod 777 -R *

         cd webrtc/

 

2、安裝下載$編譯webrtc代碼所需工具

         a.jdk (本人用的  sun jdk1.6.0_45)

                  jdk下載路徑: http://ghaffarian.NET/downloads/Java/JDK/

                  配置到環境變數中

         b.Git  ( 版本 1.9.1 ) 

                   安裝: sudo apt-get install git

         c.svn(1.8.8)

                   sudo apt-get install subversion

         c.gclient 

         1.安裝: gitclone https://chromium.googlesource.com/chromium/tools/depot_tools.git

                   如果git不行就使用svn:

                   svn checkout http://src.chromium.org/svn/trunk/tools/depot_tools

         2.配置到環境變數中

                   vi~/.bashrc

                   export PATH="$PATH":`pwd`/depot_tools

         d.安裝如下工具 ( sudo apt-get install ..) 

                   g++ (>= 4.2)

                   Python (>= 2.4)

                   libnss3-dev >= 3.12

                   libasound2-dev

                   libpulse-dev

                   libjpeg62-dev

                   libxv-dev

                   libgtk2.0-dev

                   libexpat1-dev

                   For 32-bit builds on a64-bit system:

                   lib32asound2-dev

                   ia32-libs

 

3、擷取WebRTC 源碼

         gclient config http://webrtc.googlecode.com/svn/src

4、設計目標系統版本的配置

         echo "target_os = [‘Android‘, ‘unix‘]" >> .gclient

5、同步代碼(一般直接擷取是擷取不到的,只能通過vpn,vps或者FQ)

         gclient sync --nohooks

         根據設定的平台(target_os)不同,會下載很多檔案,包括NDK&SDK還有其他tools

          ps:如果同步不了,可以選擇找一個已經同步好的壓縮包,直接解壓。但是這時候容易碰到使用svn下載是,svn的版本跟原始碼下載時的svn版本不同,導致無法更新的問題。後面會增加手動升級svn的過程。(我選的壓縮包是http://yunpan.cn/cf6qyCJTQ4UhG(提取碼:66d2),他需要被放在/home/webrtc/code/下面,親測,編譯通過)

 

三、編譯代碼

1.設定編譯環境

          1. cd trunk

          2. source ./build/android/envsetup.sh

          3.export GYP_DEFINES="$GYP_DEFINES OS=android"

 

2.下載編譯所依賴的包或工具,(這裡又會下載一大堆東西如 Ant.)

          ./build/install-build-deps.sh (trunk目錄下)

         如果這步出現錯誤,請參照:

         http://www.hankcs.com/program/network/the-pure-script-compile-webrtc-for-android.html

         進行指令碼編譯(其實只要source android/build.sh& install_dependencies就夠了)然後再做./build/install-build-deps.sh

 

3. gclientrunhooks --force (下載編譯所需的build檔案等資訊)

4.編譯 ( trunk目錄下 )

          編譯Debug版: ninja -C out/Debug

          編譯Release版: ninja-C out/Release

 

          ninja -C out/Debug/ WebRTCDemo

          ninja -C out/Debug/ AppRTCDemo

          ninja -C out/Release/ WebRTCDemo 

          ninja -C out/Release/ AppRTCDemo

 

          清除:ninja -C out/Debug -t clean

 

         注意,AppRTCDemo與 WebRTCDemo的區別:

         WebRTCDemo只是區域網路內的點對點,知道對方的ip和連接埠號碼就可以對打,  不需要伺服器, AppTRCDemo是需要伺服器的,可以區域網路,或者廣域網路  

 

四、ubuntuFQ

         參照:

         http://blog.dimpurr.com/ubuntu-gae/  (主要是它)

         http://blog.howgo.info/archives/3246.html

         http://blog.csdn.net/alanbj/article/details/39828041

 

 

五、編譯linux平台需要的庫(linux平台需要的庫即.a檔案)

 

         linux下預設應用ninja, 若是須要應用make的話, 指定 exportGYP_GENERATORS=make

         ps:android只支撐ninja編譯。

         命令:(trunk或者src目錄下)

                   exportGYP_GENERATORS=make

                   gclient runhooks(這步不能少)

                   make

         待make完成後你應該能在trunk/out/debug目錄下發現大量 .a格式的檔案。

         錯誤解決:make:*** 沒有規則可以建立“Makefile”需要的目標“../supplement.gypi”。停止

         解決:把src\chromium\src\third_party\webrtc目錄下的supplement.gypi檔案拷貝到跟src同級目錄

 

六、構建WebRTCDemo產生 .so檔案

          cd webrtc/video_engine/test/android/

        ndk-build

          成功後會產生libwebrtc-video-demo-jni.so 。

webrtc在ubuntu14.04上的編譯過程(12.04亦可)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.