Webrtc在ubuntu14.04的编译过程以及将打包生成的.a静态库

由于本人近期在研究webrtc native的使用,然后就会用到webrtc的源码进行编译,所以今天在此记录一下从下载源码到编译后的过程,期间走过许多弯路,记录下来,以便和大家分享。
主要分为两个过程 首先是从官网上下载源码,其次是利用ninja进行编译。大致就分为这两个步骤,期间的细节如下文所述。
本文参考的博客地址如下:
https://blog.csdn.net/foruok/article/details/54944427
https://blog.csdn.net/yangzhenping/article/details/52399897
下面这个网址是Linux下depot_tools的地址。
参考网址:git clone https://source.codeaurora.org/quic/lc/chromium/tools/depot_tools
还有。。。最关键的一个步骤就是,能够有一个科学的上网环境,因为国内是下载不了webrtc的源码滴,所以说我们需要搞一些事情,然后 让自己能够进行科学的上网。在此,分享一个自己的方法,搞了一个阿里云服务器,配置不高,只求能下载编译足矣。然后你就会发现,下载工具以及源码都是666了。

cd /home
mkdir webrtc
git clone https://source.codeaurora.org/quic/lc/chromium/tools/depot_tools
export PATH=$PATH:`pwd`/depot_tools

下载完成后,大概100M左右吧。在webrtc目录下会生成一个depot_tools的文件夹,文件夹中存放的是之后下载依赖以及编译过程中需要的命令脚本。

mkdir webrtc_checkout 
cd webrtc_checkout
fetch --nohooks webrtc

Okkkk!至此 如果能保证科学的上网方式以及保证基本的软件安装了 比如git 这样就正在下载webrtc的源码了。我用阿里云服务器大概等了大概30分钟的样子,下载最新版本的webrtc源码。然后就停止了,我用 du -sh *看了一下 文件夹的大小 才8个G,想了想,好像不咋对嘞,感觉最少10个G,然后gclient sync了一下,过了大概20分钟的样子,下载完成,complete。

之后就是安装依赖的过程了。

cd src
cd build
./install_build_deps.sh

下载依赖的过程。时间稍微久一些,就在此时 我遇到了如下问题。

libcups2-dev : Depends: libgnutls-dev but it is not going to be installed
 libcurl4-gnutls-dev : Depends: libgnutls-dev but it is not going to be installed
                       Depends: librtmp-dev but it is not going to be installed

大致内容就是这样子滴 后来google发现,得出结论是依赖的版本错误。

# 先安装软件看错误提示 
sudo apt-get install libcurl4-openssl-dev 

# 根据提示,一直往下安装依赖软件,直到出现以下格式错误 
libgnutls-dev : Depends: libgnutls26 (= 2.12.23-12ubuntu2.8) but 2.12.23-12ubuntu2.9 is to be installed Depends: libgnutlsxx27 (= 2.12.23-12ubuntu2.8) but it is not going to be installed Depends: libgnutls-openssl27 (= 2.12.23-12ubuntu2.8) but 2.12.23-12ubuntu2.9 is to be installed 

#这里提示libgnutls26等三个软件包,出现了版本依赖错误。 消除软件包(依次对所有软件包执行以下命令)
dpkg --purge --force-all libgnutls26 

# 修复系统依赖 
apt-get -f install 

# 如果没有提示错误,由可以依次返回去,一个一个的安装。 最后执行:
sudo apt-get install libcurl4-openssl-dev 

# 安装成功,问题解决。

下一步就进行生成ninja项目

生成debug版本的项目

gn gen out/Default

生成release版本的项目

gn gen out/Default --args='is_debug=false'

执行后 会在src/out目录下生成一个Default目录,里边就是相关的项目文件。

最后一步 就是执行项目的编译过程了,执行脚本

ninja -C out/Default

漫长的等待过程。。。。
然而 中间报了错
在这里插入图片描述
显示的是swap虚拟内存分配不足导致的 google之后 我的解决方案如下
参考 https://blog.csdn.net/afteryou/article/details/78914391

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
//开机自动挂载swap:
//使用 vi 或 nano 在 /etc/fstab 文件底部添加如下内容:
/swapfile none swap sw 0 0

问题解决。然后
gn clean /out/Default 后 继续 ninja -C /out/Default再等待。。。。。。。
在这里插入图片描述
还有600左右的文件。。。稍后看看如何。。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值