Ubuntu 14.04下编译WebRTC
- 阿里云 > 教程中心 > python教程 > Ubuntu 14.04下编译WebRTC
- Ubuntu 14.04下编译WebRTC
发布时间:2018-02-28 来源:网络 上传者:用户
关键字: 编译 Ubuntu WebRTC 14.04
发表文章
- 摘要:这两天在UbuntuServer14.04下编译了一遍WebRTC,记录了过程,放在这里,有需要的朋友可以参考。几点提示:我使用的是UbuntuServer14.04,上面没开发环境,也没桌面,从零开始配置。需要连接VPN才可以完成源码的下载和更新,以及部分依赖的安装编译过程首先要安装一些基础包,比如g++、python等,使用下面的命令:sudoapt-getinstallg++sudoapt-getinstallpython然后就是下面的步骤了,照着做就行了。有一些小细节
这两天在Ubuntu Server 14.04下编译了一遍WebRTC,记录了过程,放在这里,有需要的朋友可以参考。
几点提示:
- 我使用的是Ubuntu Server 14.04,上面没开发环境,也没桌面,从零开始配置。
- 需要连接VPN才可以完成源码的下载和更新,以及部分依赖的安装
编译过程
首先要安装一些基础包,比如g++、python等,使用下面的命令:
sudo apt-get install g++sudo apt-get install python
然后就是下面的步骤了,照着做就行了。有一些小细节,我都贴出来了。
注意我编译的是Linux版本的WebRTC,native代码,想用编译出来的库文件来做开发。
- 1) 创建文件夹
在你使用的用户目录下执行:
mkdir webrtccd webrtc
- 2) 安装git
sudo apt-get install git
- 3) 安装 svn
sudo apt-get install subversion
- 4) 安装depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=$PATH:`pwd`/depot_tools
也可以在bashrc中添加一个export命令,用户登录时自动配置PATH,注意将PATH_TO_YOUR_WEBRTC_DIR替换为你的实际路径:
vim ~/.bashrc # 文件末尾添加这个命令 export PATH=$PATH:$PATH_TO_YOUR_WEBRTC_DIR/depot_tools
- 5) 同步代码
执行下列命令序列即可:
mkdir webrtc-checkout cd webrtc-checkout fetch --nohooks webrtc gclient sync
此时我们在webrtc-checkout目录下,获取源码后,会建立一个src目录。
- 6) 安装编译依赖
直接使用WebRTC提供的install-build-deps.sh脚本来安装所有依赖(脚本安装的依赖有点多,有一些已经不需要了,不过没关系)。
注意我们是在webrtc-checkout目录下执行
./src/build/install-build-deps.sh
脚本使用sudo来安装依赖,你需要多次输入密码,否则就会停在那里……
部分依赖库也会要你输入Y或N,你不输入,也会停在那里……
我在Ubuntu Server 14.04上执行,安装字体时弹出了同意协议的界面,确认后才能继续。按左右方向键可以选中console显示的界面上的Yes或Ok按钮。
- 7) 生成ninja项目文件
需要进入webrtc-checkout/src目录下来执行相关命令。
生成debug版ninja项目文件:
gn gen out/Default
生成release版ninja项目文件:
gn gen out/Default --args='is_debug=false'
要清空ninja项目文件:
gn clean out/Default
我生成的release版,截个图:
使用gn非常快,没反应过来呢,Done!
- 8) 编译
需要进入webrtc-checkout/src目录下来执行下面的命令:
ninja -C out/Default
再来个编译中的图:
3306个文件,编译半个小时左右,完成后:
好像没什么可看的……
编译好的SDK
默认编译的是静态库和可执行文件。
进入 out/Default 文件夹,执行ls命令,会看到编译出来各种可执行程序,比如stunserver、relayserver,如下图:
如果想知道.a在哪里,执行find ./ -name *.a可以看到下面的结果:
想把.a文件拷贝到一个地方,开发时方便引用,可以执行下列命令:
mkdir ../libfind ./ -name *.a -exec cp {} ../lib /;
上面两个命令,会在out目录下建立一个lib文件夹,把编译生成的所有.a文件拷贝过去。然后开发时就方便了。
头文件就在src/webrtc下面,比如api目录。直接引用就可以了。
参考文档
参考WebRTC的官方文档即可完成编译:
- https://webrtc.org/native-code/development/
- https://webrtc.org/native-code/development/prerequisite-sw/
关于WebRTC的学习资料,我之前整理了一个文章:
Ubuntu 14.04下编译WebRTC相关推荐
- 玩转mini2440开发板之【在Ubuntu 14.04下编译安装tslib 1.4版本】
今天在研究mini2440的QT程序时,发现缺少tslib,于是想办法安装. 一开始想直接去tslib官网上下载最新版本的,但是编译时发现无法通过,于是只好按照大多数网友的做法,取了一个最成熟最稳定的 ...
- pjsip php,VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP
嗯 我编译是1.3和1.8就出错,2.4(最新版本)就不出错了.然而,我用的代码使用的是1.3和1.8的版本 https://github.com/klaus3000/QjSimple 编译项目SSL ...
- linux命令行安装libxml,Ubuntu 14.04下libxml2的安装和使用
Ubuntu 14.04下libxml2库的安装方法: sudo apt-get install libxml2 sudo apt-get install libxml2-dev 利用以上命令安装完软 ...
- 【转】基于Ubuntu 14.04 LTS编译Android4.4.2源代码
原文网址:http://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS编译Android4.4.2源代码 Denni ...
- Ubuntu 12.04 下编译Android 4.0.3
在Ubuntu 12.04 下编译了Android 4.0.3发现了一大堆错误,网上找了一堆的更改源码啊,Android.mk的解决方法,虽然可以编译成功,但都有点坑爹的成分,为了不误人子弟就分享出来 ...
- ubuntu14.04安装linux公社,Ubuntu 14.04下安装IT++
Ubuntu 14.04 下安装 IT++(itpp)(官方二进制包安装版) 温馨提示:虽然没有尝试,不过直接运行最后一步应该也可以成功. 另外,既然有简单的方法,不到破不得以还是不要尝试麻烦的方法了 ...
- Ubuntu 14.04 下 Virtual Judge 的搭建
前期准备工作 1.1 一个Linux系统 因为现场赛的缘故,我一直使用的都是ubuntu. 这里我测试用的是Ubuntu14.04 Desktop 64bit ,当然选择Server会更好一些. 系统 ...
- Ubuntu 11.04下编译kernel
Ubuntu 11.04下编译kernel 1. 下载并解压Linux内核源代码, 内核源码下载地址为www.kernel.org,查看当前内核版本命令为uname -r.下载后解压至目录/usr/s ...
- linux下的svn搭建,Ubuntu 14.04 下搭建SVN服务器 svn://
Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get install subversion 之后选择SVN服务文件及配置文件的放置位置.我放在了/srv下 ...
最新文章
- dr优先级默认_当配置一个CISCO的路由器时,缺省的DR和BDR优先级是()。
- Scala中集合类型与java中集合类型转换
- C# 读取保存App.config配置文件的完整源码参考
- ETL工具Kettle使用
- hdu 1115(多边形重心)
- 仅输入单张图片,就能“看”出物体材质!这篇图形学论文已被SIGGRAPH 2021收录...
- 网络爬虫--19.【Scrapy-Redis实战】分布式爬虫爬取房天下--环境准备
- 移动应用开发——实验四
- 手撕深度学习框架,原理很简单
- 【入门指南】使用阿里云Elasticsearch搭建ELK日志系统
- - -||计算机专业就业前景
- Android小插件 —— 天气插件
- 华为发布鸿蒙Beta版公测,华为推出鸿蒙OS 2.0手机开发者Beta版:P40、Mate 30系列可申请公测...
- java登录验证_java实现登录验证码
- 怦然心动(Flipped)-6
- RESTful API学习笔记
- 计算机网络p2p应用,【计算机网络】2.6 P2P应用(示例代码)
- python将一个正整数分解质因数
- Linux-京东字节百度提前批,一面二面都被问到了awk——实例篇(2)去重统计排序
- OpenCV学习——基本操作之绘制几何图形
热门文章
- [转]详解HTTP包
- 洛谷 - P4062 [Code+#1]Yazid 的新生舞会(推公式+线段树)
- 2021牛客多校2 - Girlfriend(球体积交)
- 洛谷 - P4768 [NOI2018]归程(Kruskal重构树+树上倍增+最短路)
- CodeForces - 1327E Count The Blocks(组合数学)
- POJ - 1330 Nearest Common Ancestors(树上倍增/树链剖分求LCA)
- tvar julia pca_景德镇品种多样PCA牛卡纸追求品质
- qt linux 串口eventdriven,详解 Qt 串口通信程序全程图文 (1)
- 从蓝桥杯来谈Fibonacci数列
- GROUP BY 子句中 选择列表中的列无效,因为该列没有包含在聚合函数或