1. 程式人生 > >webrtc在ubuntu14.04上的編譯過程(12.04亦可)

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

使用 設置 arch clean lean 文件拷貝 ubun script name

轉自: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亦可)