WebRTCWebRTC

Ubuntu 下编译 WebRTC

2017-08-10  本文已影响717人  Gobert

-- Ubuntu 下编译 WebRTC

Ubuntu 下编译 WebRTC

一、Ubuntu 系统环境准备

1、安装双系统 Windows 10 / Ubuntu 16.04

最近几年一直在使用 ThinkPad 笔记本(自己之前自己买的 ThinkPad X230),现在公司给配的 ThinkPad X1,已经好久不安装双系统了(Windows & Ubuntu,一直以 VMware 虚拟机代替),目前根据公司任务,有时需要从事 Windows 开发,有时也要从事 Android 底层 native 的开发,同事们都是使用 MAC 进行 Android 进行开发,唯独我自己使用 Windows 系统,经常出现协同开发时遇到一些系统级的坑,如 Android.mk 文件中源码文件路径过长, 编译脚本下载到 Windows 下自动转换为 Windows 格式,导致脚本不能执行,git 过滤文件格式 .ignore 不生效等问题;让我慢慢下定决心转到 Ubuntu 下进行发开发 Android。最近公司决定基于 webrtc 进行二次开发,为了方便快速的将 webrtc 源码进行下载和编译,决定首先在 Ubuntu 下进行编译。
公司配的 X1 磁盘空间剩余不多,决定使用 X230 分配出200个 G 进行安装 Windows 10 / Ubuntu 双系统,安装过程中也遇到了一些新的问题(主要是由于 X230 双磁盘,固态硬盘 & 机械硬盘,安装成功后总是不能引导 Ubuntu 启动),最终搞了将近 3 个小时才搞明白,其实安装很简单,步骤如下:

a、Windows 下使用 UltraISO 刻录 Ubuntu 系统镜像

ubuntu 建议下载 64bit 的,目前电脑内存都是大于 4G 的,如果装了 32 bit,那么大的内存就太浪费了;

b、安装 Ubuntu 时 系统引导盘选择整个的 机械硬盘,即 Ubuntu 系统安装所在磁盘

本人 Windows 10 安装在了 SSD 固态硬盘上,而 Ubuntu 安装在了 500G 的机械硬盘上,如果需要启动 Ubuntu 系统,需要在电脑启动时,按 F12 选择系统引导磁盘,默认还是固态硬盘,如要启动 Ubuntu,就选择机械硬盘,既可(也可以在 bois 表中,配置 BOOT 启动项顺序,调整此次启动磁盘)。

c、准备 Ubuntu 的环境

以上选项网上搜索均可搞定;

二、下载 WebRTC 源码及依赖工具

1、下载 depot_tools 并配置

Google 使用 depot_tools 工具(脚本组合)进行代码的同步、下载管理等,这个脚本包中包含了 gclient、gcl、git-cl,repo 等;

在 Linux 下需首先确认 git 和 Python 已经安装,并且 git version >= 2.2.1, Python version = 2.7(版本过高会报错);
选择一个目录,如

~/OpenSource

通过 git 获取 depot_tools ,执行如下命令既可:

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

最后将 depot_tools 目录添加到环境变量 PATH 中,建议添加到 ~/.bashrc 中,或者 /etc/profile 文件中,可以一劳永逸,打开以上中的任意一个文件,如

sudo vi ~/.bashrc

在最后添加一行:

export PATH=~/OpenSource/depot_tools:"$PATH"

执行命令,使环境变量生效:

source ~/.bashrc

可通过

echo $PATH

确认配置成功:

/home/gobert/OpenSource/depot_tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

执行以下命令,安装并配置 depot_tools 依赖:

gclient sync

需要等待一段时间,具体看你的 VPN 网速如何了。

三、下载并编译 WebRTC

1、下载 WebRTC 源码

mkdir webrtc-checkout
cd webrtc-checkout
fetch --nohooks webrtc
gclient sync

经过漫长的等待, webrtc 全部下载到本地的话,大约会占用 6.4 G 的磁盘空间;

注:由于WebRTC 目前还在频繁的更新中,建议定期的去下载更新下编译工具链及其依赖,通过执行
gclient sync 既可!

2、编译

WebRTC 目前使用 GN 来生成构建脚本,Ninja 进行构建,所以系统平台均是。

四、问题记录

1、gn: command not found 或者 gclient command not found 是因为 depot_tools 环境变量配置有误,没有正确找到 depot_tools 目录下的 gn 或 gclient 工具,确认 ~/.bashrc 文件配置是否正确:

export PATH=~/OpenSource/depot_tools:"$PATH"

2、执行 gn gen out/Default 命令报错:

gn.py: Could not find gn executable at: XXX/gn

需要执行命令:

gclient runhooks

需要耐心等待一段时间,由其自动下载安装一些工具包,完成后,再次执行

gn gen out/Default

命令,提示成功:

Done. Made 467 targets from 126 files in 383ms
上一篇 下一篇

猜你喜欢

热点阅读