Ubuntu 14.04下编译WebRTC

这两天在Ubuntu Server 14.04下编译了一遍WebRTC,记录了过程,放在这里,有需要的朋友可以参考。 几点提示: 我使用的是Ubuntu Server 14.04,上面没开发环境,也没桌面,从零开始配置。 需要连接VPN才可以完成源码的下载和更新,以及部分依赖的安装 编译过

这两天在Ubuntu Server 14.04下编译了一遍WebRTC,记录了过程,放在这里,有需要的朋友可以参考。

几点提示:

  1. 我使用的是Ubuntu Server 14.04,上面没开发环境,也没桌面,从零开始配置。
  2. 需要连接VPN才可以完成源码的下载和更新,以及部分依赖的安装

编译过程

首先要安装一些基础包,比如g++、Python等,使用下面的命令:

 
 
  • 1
  • 2
  • 1
  • 2
sudo apt-get install g++ sudo apt-get install python

然后就是下面的步骤了,照着做就行了。有一些小细节,我都贴出来了。

注意我编译的是Linux版本的WebRTC,native代码,想用编译出来的库文件来做开发。

  • 1) 创建文件夹

在你使用的用户目录下执行:

  
  
  • 1
  • 2
  • mkdir webrtc cd webrtc
    • 2) 安装git
      
      
  • 1
    • 1
    sudo apt-get install git
    • 3) 安装 svn
    sudo apt-get install subversion
    • 4) 安装depot_tools
      
      
  • 1
  • 2
  • 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替换为你的实际路径:

      
      
  • 1
  • 2
  • 3
    • 1
    • 2
    • 3
    vim ~/.bashrc # 文件末尾添加这个命令 export PATH=$PATH:$PATH_TO_YOUR_WEBRTC_DIR/depot_tools
    • 5) 同步代码

    执行下列命令序列即可:

      
      
  • 1
  • 2
  • 3
  • 4
    • 1
    • 2
    • 3
    • 4
    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项目文件:

      
      
  • 1
  • gn gen out/Default

    生成release版ninja项目文件:

    Default --args='is_debug=false'

    要清空ninja项目文件:

      
      
  • 1
  • gn clean 我生成的release版,截个图:

    使用gn非常快,没反应过来呢,Done!

    • 8) 编译

    需要进入webrtc-checkout/src目录下来执行下面的命令:

      
      
  • 1
  • ninja -C out/ 再来个编译中的图:

    3306个文件,编译半个小时左右,完成后:

    好像没什么可看的……

    编译好的SDK

    默认编译的是静态库和可执行文件。

    进入 out/Default 文件夹,执行ls命令,会看到编译出来各种可执行程序,比如stunserver、relayserver,如下图:

    如果想知道.a在哪里,执行find ./ -name *.a可以看到下面的结果:

    想把.a文件拷贝到一个地方,开发时方便引用,可以执行下列命令:

      
      
  • 1
  • 2
  • mkdir ../lib find ./ -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的学习资料,我之前整理了一个文章:

    • WebRTC学习资料大全

    http://blog.csdn.net/foruok/article/details/54944427

    作者: dawei

    【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

    为您推荐

    联系我们

    联系我们

    0577-28828765

    在线咨询: QQ交谈

    邮箱: xwei067@foxmail.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    返回顶部