转自: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. _findfirst和_findnext

    1.首先是_finddata结构体,用于存储文件信息的结构体. 2._findfirst函数:long _findfirst(const char *, struct _finddata_t *); ...

  2. Odoo访问权限(一)

    Odoo访问权限(一) 四个ODOO权限管理层次 一. Odoo 菜单级别: 即,不属于指定菜单所包含组的用户看不到该菜单.不安全,只是隐藏菜单,若用户知道菜单ID,仍然可以通过指定URL访问 二. ...

  3. 任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。

    任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和. 当n=7共14种拆分方法: 7=1+1+1+1+1+1+1 7=1+1+1+1+1+2 7=1+1+1+1+3 7=1+1+1+2+2 ...

  4. CodeForces 794 G.Replace All

    CodeForces 794 G.Replace All 解题思路 首先如果字符串 \(A, B\) 没有匹配,那么二元组 \((S, T)\) 合法的一个必要条件是存在正整数对 \((x,y)\), ...

  5. C#、Java、Javascript获取Unix时间戳

    背景: 因为项目需要,需要几种语言联动开发,日期字段设计的数字型 获取Unix时间戳代码: Java System.currentTimeMillis() Javascript new Date(). ...

  6. Codeforces Round #368 (Div. 2) A. Brain's Photos 水题

    A. Brain's Photos 题目连接: http://www.codeforces.com/contest/707/problem/A Description Small, but very ...

  7. SGU 104. Little shop of flowers (DP)

    104. Little shop of flowers time limit per test: 0.25 sec. memory limit per test: 4096 KB PROBLEM Yo ...

  8. HDU 4762 Cut the Cake (2013长春网络赛1004题,公式题)

    Cut the Cake Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  9. STM32 F4 SPI Accelerometer

    STM32 F4 SPI Accelerometer

  10. An Isolated DAC Using PWM Output

    An Isolated DAC Using PWM Output Arduino‘s (ATmega328P) PWM outputs via analogWrite can be convenien ...