webrtc在ubuntu14.04上的编译过程(12.04亦可)
转自: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亦可)的更多相关文章
- 在ubuntu14.04上安装编译Android需要的开发包
具体的操作步骤,可在Android官网查看. http://source.android.com/source/initializing.html 首先安装dpkg-dev sudo apt-get ...
- 分析cocos2d-x在Android上的编译过程(1):cocco2d-x是怎样生成的Android的文件夹结构
当新建完一个cocos2d-x的项目后.进入到项目中的proj.android中,会看到例如以下的文件夹结构 在VS先把它编译,然后导入到Eclipse中,导入完后会看到多了几个文件 watermar ...
- Hadoop 3.1.0 在 Ubuntu 16.04 上的安装过程
安装过程主要参考官方文档: http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster. ...
- cocos2d-x在Android上的编译过程(3):简化Android.mk文件的编写
在编译动态库时.要求我们要去编写jni/Android.mk文件.告诉编译器编译出来的库时应包括包括编译文件和其它引用库.但对于一个大项目来说,维护这个文件肯定是一件比較繁琐的事情.由于每加一个文件或 ...
- OpenBLAS简介及在Windows7 VS2013上源码的编译过程
OpenBLAS(Open Basic Linear Algebra Subprograms)是开源的基本线性代数子程序库,是一个优化的高性能多核BLAS库,主要包括矩阵与矩阵.矩阵与向量.向量与向量 ...
- 搭建OpenWrt开发环境(包括编译过程)
OpenWrt是一个高度模块化.高度自动化的嵌入式linux发行版,其编译和安装过程比普通的linux发行版而言,要简单太多了.如果您是新手,您那恐惧的心大可放到肚子里,呵呵.对于新手来说最麻烦的恐怕 ...
- C语言笔记——简介与编译过程初探
序言 从今天起,详细说说C语言.这一年多,在大多数语言和技术之间转了一大圈,终于看清楚了事实,决心静下心来好好学学C语言.初学者会认为C语言是个入门用的东西,没有必要深入研究.但对计算机领域再稍加了解 ...
- 解决unbuntu14.04上的eclipse自动退出的问题
新安装的ubuntu14.04版,把以前12.04上正常使用的eclipse拷贝到14.04上后,启动eclipse后,输入代码时出现点"."提示符就会自动重启. jdk是1.7. ...
- 在ubuntu18.04上安装EOS
在ubuntu18.04上安装EOS 在ubuntu18.04上安装EOS的目的: 把交易所的eos转到eos主网,防止交易所跑路或者交易所被黑客攻击 在不联网的安全环境下,用eos官方的命令行工具, ...
随机推荐
- Java基础88 数据库设计的三大范式
数据库的设计原则:建议设计的表尽量遵守三大范式 1.第一范式 要求表的每个字段必须是不可分割的独立单元 Student表: name -- 违反了第一范式 张 ...
- Coursera台大机器学习技法课程笔记13-Deep Learning
深度学习面临的问题和现在解决的办法: 简要来说,分两步使用DL:初始化时一层一层的选择权重,而后再进行训练: 那么怎么做pre-training,即怎么选择权重呢?好的权重能够不改变原有资料的信息,即 ...
- opencv的级联分类器(mac)
级联分类器的介绍:级联分类器训练 因为要训练负样本,windows电脑有些问题,所以就只能有mac进行训练. 在windows中训练,准备了负样本之后,进行三步. 1.opencv_createsam ...
- 一个浏览器Fuzzing框架的学习
一个浏览器Fuzzing框架的学习 关于框架 之前是LCatro师傅在小密圈分享的他写的这个Fuzzing框架(不过我以前翻github时好像就看到过),但是之前一直没啥时间搞这方面,这两天研究学习了 ...
- Android开源库集合(UI效果)
动画效果 粒子动画效果 https://github.com/glomadrian/Grav 水波式loading等待动画 https://github.com/race604/WaveLoading ...
- linux文本编码格式转化 字幕处理
在处理字幕的时候,linux的编码格式转换很烦. 步骤: 用python先判断 其编码,再用iconv 转编码,再用awk处理格式. file不能判断吗?file有时不准. 1.python判断编码 ...
- 开始使用KVM和QEMU
一. 简介 Quick Emulator(QEMU) 是QEMU/KVM虚拟化套件中的主要组成部分. 它提供了硬件的虚拟化和处理器的仿真. QEMU不用运行在内核,它是运行在用户空间的. QEMU支持 ...
- Machine Schedule HDU1150
有两台机器A和B以及N个需要运行的任务.每台机器有M种不同的模式,而每个任务都恰好在一台机器上运行.如果它在机器A上运行,则机器A需要设置为模式xi,如果它在机器B上运行,则机器A需要设置为模式yi. ...
- Vue父子组件之间通信
1.父 -> 子.通过props //father.vue <template> <div id="father"> <div><l ...
- 【Ray Tracing in One Weekend 超详解】 光线追踪1-10
<Ray Tracing in One Weekend>完结篇 最近课程上机实验,封面图渲染时间也超长,所以写东西就落下了,见谅 这篇之后,我会继续<Ray Tracing The ...