转自: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 。

转载于:https://www.cnblogs.com/x_wukong/p/7215543.html

webrtc在ubuntu14.04上的编译过程(12.04亦可)相关推荐

  1. 最新版本webrtc源代码在windows上的编译方法

    http://blog.csdn.net/choday/article/details/19978427 分类: webrtc 2014-02-26 14:34 1893人阅读 评论(8) 收藏 举报 ...

  2. kaldi在linux上编译,Ubuntu 12.04下编译安装Kaldi

    因为同事工作需要 kaldi ,所以安装过程有点麻烦.在此记录一下折腾的过程. OS:Ubuntu 12.04 (amd64) kaldi的下载地址  http://svn.code.sf.net/p ...

  3. ubuntu 12.04 php升级,在 Ubuntu 12.04 LTS 中将 PHP 从 5.3 升级到 5.5

    在Ubuntu 12.04 LTS中,使用 sudo apt-get install php5-fpm 安装的PHP版本是PHP5.3,如果想要使用Yii2或者Laravel框架,则PHP版本至少是5 ...

  4. linux上C++编译过程

    一:哪些代码是在预处理的时候运行的: (1)include头文件 (2)导入库 (3)宏定义 二:编译 编译:是代码转成汇编语言 三:汇编 汇编:将汇编代码转换成二进制,注意:第二步和第三步可以简单理 ...

  5. yum方式安装android_在CentOS 7和Ubuntu14.04上安装Android Studio

    先介绍在CentOS 7的安装过程,再介绍Ubuntu14.04上的安装过程: 1.卸载OpenJDK,下载JDK最新版本,然后安装: rpm -qa | grep java rpm -e --nod ...

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

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

  7. log4cxx编译过程–linux

    前面有一篇Windows下的log4cxx编译, 这里记录下在linux上的编译过程. 环境:CentOS6.3 gcc-4.4.6 -> view os version: lsb_releas ...

  8. 华为H3C拨号软件编译过程

    昨天在ubuntu9.04上装里linux1x的拨号端,可连上之后老是断网,今天把这问题给解决了. 以前用的拨号客户端都是别人编译好的,自己直接拿过来用 就行了,这次想自己编译一个.首先下来源文件下载 ...

  9. Dlib简介及在windows7 vs2013编译过程

    Dlib是一个C++库,包含了许多机器学习算法.它是跨平台的,可以应用在Windows.Linux.Mac.embedded devices.mobile phones等.它的License是Boos ...

  10. 如何在 Ubuntu 14.04 和 12.04 上测试 systemd

    本来,Ubuntu决定从Ubuntu 16.04 LTS开始使用systemd来替换当前的引导过程.Ubuntu 16.04预计在2016年4月发布,但是考虑到systemd的流行和需求,刚刚发布的U ...

最新文章

  1. linux tomcat 配置启动命令,# linux 之 配置tomcat开机自启动(systemctl)
  2. Linux使用storcli工具查看服务器硬盘和raid组信息
  3. 神策 FM | “微信之父”张小龙的四大关键产品原则
  4. OpenCV探索之路(三):滤波操作
  5. 决策树(Decision Tree,DT)
  6. php定义object数据类型,PHP数据类型(4):对象object
  7. 大学计算机专业全民,计算机专业大学排名实力顺序(上大学国内计算机专业大学哪个好值得报读)...
  8. java改变线程堆栈大小,在运行时更新java线程的堆栈大小
  9. gui卡顿 python_视频下载神器(youget),在 Python 中怎么使用?
  10. ios笔记-单例文字代码详解
  11. android开发的学习路线
  12. ios12完美深色模式插件_那些好玩的插件 iOS 12(十七)
  13. 最多站长使用的DNS服务商
  14. 计算机的快速启动栏,电脑快速启动栏不见了
  15. 彻底解决Android Studio Minimum supported Gradle version is X.Y.Z. Current version is x.y.z.问题
  16. Jump gameII
  17. 重生之我是赏金猎人(九)-从本无法触发的xss到梦幻联动挖掘多个致命接口下的XSS触发点
  18. 2020就业形势报告:计算机相关行业仍是最热,人工智能聚集北上广深
  19. mysql中my.cnf不生效解决
  20. 2022网络搭建国赛公开题mail服务器搭建

热门文章

  1. 简述linux命令的,简述linux系统以及一些简单的命令
  2. python rabitmq_python中RabbitMQ的使用(安装和简单教程)
  3. 解决虚拟机内服务器卡顿,不流畅问题
  4. Go gorilla websocket 小试牛刀
  5. access denied (java.io.FilePermission IKAnalyzer.cfg.xml read
  6. PHPeclipse操作svn
  7. Yii Framework2.0开发教程(1)配置环境及第一个应用HelloWorld
  8. JDK Frame内容区绘制边框
  9. java.io.IOException: Cannot run program “del“: CreateProcess error=2, 系统找不到指定的文件。
  10. 使用VS2015编译OpenJDK8