转自: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亦可)的更多相关文章

  1. 在ubuntu14.04上安装编译Android需要的开发包

    具体的操作步骤,可在Android官网查看. http://source.android.com/source/initializing.html 首先安装dpkg-dev sudo apt-get ...

  2. 分析cocos2d-x在Android上的编译过程(1):cocco2d-x是怎样生成的Android的文件夹结构

    当新建完一个cocos2d-x的项目后.进入到项目中的proj.android中,会看到例如以下的文件夹结构 在VS先把它编译,然后导入到Eclipse中,导入完后会看到多了几个文件 watermar ...

  3. Hadoop 3.1.0 在 Ubuntu 16.04 上的安装过程

    安装过程主要参考官方文档: http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster. ...

  4. cocos2d-x在Android上的编译过程(3):简化Android.mk文件的编写

    在编译动态库时.要求我们要去编写jni/Android.mk文件.告诉编译器编译出来的库时应包括包括编译文件和其它引用库.但对于一个大项目来说,维护这个文件肯定是一件比較繁琐的事情.由于每加一个文件或 ...

  5. OpenBLAS简介及在Windows7 VS2013上源码的编译过程

    OpenBLAS(Open Basic Linear Algebra Subprograms)是开源的基本线性代数子程序库,是一个优化的高性能多核BLAS库,主要包括矩阵与矩阵.矩阵与向量.向量与向量 ...

  6. 搭建OpenWrt开发环境(包括编译过程)

    OpenWrt是一个高度模块化.高度自动化的嵌入式linux发行版,其编译和安装过程比普通的linux发行版而言,要简单太多了.如果您是新手,您那恐惧的心大可放到肚子里,呵呵.对于新手来说最麻烦的恐怕 ...

  7. C语言笔记——简介与编译过程初探

    序言 从今天起,详细说说C语言.这一年多,在大多数语言和技术之间转了一大圈,终于看清楚了事实,决心静下心来好好学学C语言.初学者会认为C语言是个入门用的东西,没有必要深入研究.但对计算机领域再稍加了解 ...

  8. 解决unbuntu14.04上的eclipse自动退出的问题

    新安装的ubuntu14.04版,把以前12.04上正常使用的eclipse拷贝到14.04上后,启动eclipse后,输入代码时出现点"."提示符就会自动重启. jdk是1.7. ...

  9. 在ubuntu18.04上安装EOS

    在ubuntu18.04上安装EOS 在ubuntu18.04上安装EOS的目的: 把交易所的eos转到eos主网,防止交易所跑路或者交易所被黑客攻击 在不联网的安全环境下,用eos官方的命令行工具, ...

随机推荐

  1. 几个比较实用的CSS

    1.filter:chroma(color:#FFFFFF);    让指定的背景色透明,例: <table cellspacing = "0" cellpadding = ...

  2. 2017-2018-2 20155225《网络对抗技术》实验一 PC平台逆向破解

    2017-2018-2 20155225<网络对抗技术>实验一 PC平台逆向破解 1.直接修改程序机器指令,改变程序执行流程 理清思路: 我们的目标文件是一个linux可执行文件,格式为E ...

  3. spring配置文件详解以及beans:beans标签

    第一行的意思就是你这个文件的默认schema为security,所以你的beans定义就需要加上前缀beans 一般的定义文件默认都是beans: 下面是spring配置文件的详解: 转自:http: ...

  4. PHP 导出简单文本内容(word txt等)

    PHP导出word文件,简单拓展可导出其他文本类文件 /** * PHP 导出简单文本内容(word txt等) * @param $content mixed 导出内容 (文本string / ht ...

  5. shared_ptr(作为局部变量返回)

    智能指针:shared_ptr 1.一个局部的shared_ptr 作为返回值过程:当shared_ptr 被创建的时候,自身的引用计数 +1,当前引用计数为 1 , 按值返回以后 引用计数 + 1 ...

  6. linux学习笔记-2.常用命令

    说明:安装linux时,创建一个luao用户,然后使用root用户登陆系统 1.进入到用户根目录 cd ~ 或 cd cd / 返回到根目录 2.查看当前所在目录 pwd 3.进入到luao用户根目录 ...

  7. MOXA的Nport5600初始密码

    今天第一次弄Nport,看了半天手册没找到初始密码,网上也搜不到,按照说明书上想打电话问问,发现根本是空号... 后来灵感一来试了一下,居然是:moxa

  8. hdu 5783 Divide the Sequence 贪心

    Divide the Sequence 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5783 Description Alice has a seq ...

  9. hdu 5734 Acperience 水题

    Acperience 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5734 Description Deep neural networks (DN ...

  10. OpenJ_POJ C16B Robot Game 打表找规律

    Robot Game 题目连接: http://acm.hust.edu.cn/vjudge/contest/122701#problem/B Description Sgeoghy has addi ...