• 阿里云  >  教程中心   >  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,记录了过程,放在这里,有需要的朋友可以参考。

    几点提示:

    1. 我使用的是Ubuntu Server 14.04,上面没开发环境,也没桌面,从零开始配置。
    2. 需要连接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的官方文档即可完成编译:

    1. https://webrtc.org/native-code/development/
    2. https://webrtc.org/native-code/development/prerequisite-sw/

    关于WebRTC的学习资料,我之前整理了一个文章:

Ubuntu 14.04下编译WebRTC相关推荐

  1. 玩转mini2440开发板之【在Ubuntu 14.04下编译安装tslib 1.4版本】

    今天在研究mini2440的QT程序时,发现缺少tslib,于是想办法安装. 一开始想直接去tslib官网上下载最新版本的,但是编译时发现无法通过,于是只好按照大多数网友的做法,取了一个最成熟最稳定的 ...

  2. 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 ...

  3. linux命令行安装libxml,Ubuntu 14.04下libxml2的安装和使用

    Ubuntu 14.04下libxml2库的安装方法: sudo apt-get install libxml2 sudo apt-get install libxml2-dev 利用以上命令安装完软 ...

  4. 【转】基于Ubuntu 14.04 LTS编译Android4.4.2源代码

    原文网址:http://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS编译Android4.4.2源代码 Denni ...

  5. Ubuntu 12.04 下编译Android 4.0.3

    在Ubuntu 12.04 下编译了Android 4.0.3发现了一大堆错误,网上找了一堆的更改源码啊,Android.mk的解决方法,虽然可以编译成功,但都有点坑爹的成分,为了不误人子弟就分享出来 ...

  6. ubuntu14.04安装linux公社,Ubuntu 14.04下安装IT++

    Ubuntu 14.04 下安装 IT++(itpp)(官方二进制包安装版) 温馨提示:虽然没有尝试,不过直接运行最后一步应该也可以成功. 另外,既然有简单的方法,不到破不得以还是不要尝试麻烦的方法了 ...

  7. Ubuntu 14.04 下 Virtual Judge 的搭建

    前期准备工作 1.1 一个Linux系统 因为现场赛的缘故,我一直使用的都是ubuntu. 这里我测试用的是Ubuntu14.04 Desktop 64bit ,当然选择Server会更好一些. 系统 ...

  8. Ubuntu 11.04下编译kernel

    Ubuntu 11.04下编译kernel 1. 下载并解压Linux内核源代码, 内核源码下载地址为www.kernel.org,查看当前内核版本命令为uname -r.下载后解压至目录/usr/s ...

  9. linux下的svn搭建,Ubuntu 14.04 下搭建SVN服务器 svn://

    Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get install subversion 之后选择SVN服务文件及配置文件的放置位置.我放在了/srv下 ...

最新文章

  1. dr优先级默认_当配置一个CISCO的路由器时,缺省的DR和BDR优先级是()。
  2. Scala中集合类型与java中集合类型转换
  3. C# 读取保存App.config配置文件的完整源码参考
  4. ETL工具Kettle使用
  5. hdu 1115(多边形重心)
  6. 仅输入单张图片,就能“看”出物体材质!这篇图形学论文已被SIGGRAPH 2021收录...
  7. 网络爬虫--19.【Scrapy-Redis实战】分布式爬虫爬取房天下--环境准备
  8. 移动应用开发——实验四
  9. 手撕深度学习框架,原理很简单
  10. 【入门指南】使用阿里云Elasticsearch搭建ELK日志系统
  11. - -||计算机专业就业前景
  12. Android小插件 —— 天气插件
  13. 华为发布鸿蒙Beta版公测,华为推出鸿蒙OS 2.0手机开发者Beta版:P40、Mate 30系列可申请公测...
  14. java登录验证_java实现登录验证码
  15. 怦然心动(Flipped)-6
  16. RESTful API学习笔记
  17. 计算机网络p2p应用,【计算机网络】2.6 P2P应用(示例代码)
  18. python将一个正整数分解质因数
  19. Linux-京东字节百度提前批,一面二面都被问到了awk——实例篇(2)去重统计排序
  20. OpenCV学习——基本操作之绘制几何图形

热门文章

  1. [转]详解HTTP包
  2. 洛谷 - P4062 [Code+#1]Yazid 的新生舞会(推公式+线段树)
  3. 2021牛客多校2 - Girlfriend(球体积交)
  4. 洛谷 - P4768 [NOI2018]归程(Kruskal重构树+树上倍增+最短路)
  5. CodeForces - 1327E Count The Blocks(组合数学)
  6. POJ - 1330 Nearest Common Ancestors(树上倍增/树链剖分求LCA)
  7. tvar julia pca_景德镇品种多样PCA牛卡纸追求品质
  8. qt linux 串口eventdriven,详解 Qt 串口通信程序全程图文 (1)
  9. 从蓝桥杯来谈Fibonacci数列
  10. GROUP BY 子句中 选择列表中的列无效,因为该列没有包含在聚合函数或