0


WebRtc源码下载与编译(完整版)

自从想要了解学习Webrtc,就从网上到处找源码编译,但是要么是源码本身的问题,要么是编译过程用的的工具问题,找到源码总是不能编译过去。于是下决心直接从源头拉取最新源码编译,经过几天折腾,解决了上网问题后,下载编译了linux和Android的源码,并编译通过。过程记录如下,供大家参考。

  • 一、Linux版本

1、安装depot_tools

创建工作目录webrtc,cd 到自己创建的工作目录(/home/zhangpf/webrtc),拉取工具:

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

如果出现443 timeout,需要手工设置git的proxy,走主机vp n端口(备注:V PN使用的http端口10809)

git config --global http.proxy "192.168.0.46:10809"

git config --global https.proxy "192.168.0.46:10809"

成功后,将工具路径添加到环境变量中:

vi ~/.bashrc

.bashrc添加如下一行

export PATH="$PATH:/home/zhangpf/webrtc/depot_tools" (一定要全路径)

执行生效source ~/.bashrc

2、获取代码

mkdir code (/home/zhangpf/webrtc/code)

cd code

fetch --nohooks webrtc

过一会儿,显示如下就表示正常进行:

中间如果报错,出现中断,执行: gclient sync 继续下载。

没有报错,下载完后也执行一下 gclient sync。

中途如果下载个别文件因为网络原因有出错的地方,fetch会中断,可以找到日志中的git 链接复制过来直接手工下载,比如:

git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/chromium/tools/depot_tools.git /home/zpf/webrtc/src/third_party/_gclient_depot_tools_z3x8wt3s

成功后再执行: gclient sync 继续下载。

gclient sync 最后可能会停止住很长时间不动,如果这时去统计src目录的大小,可以看到字节数在变化,说明后台还在下载,要耐心等待。然后开始出现 Running hooks: 的打印:

时间大概需要几十分钟左右。在90%会停止很久的样子,src的字节数会继续大幅增加。一般会出现如下NOTICE,但是应该没有什么问题。如果要解决,参考这个从其他网页截取的方法。

以上操作是下载最新版本,如果要下载指定分支,如下操作:

比如将分支定位到m72

(查看分支: get branch -r)
$ cd src
$ git checkout -b m72 refs/remotes/branch-heads/72
$ cd …
$ gclient sync

3、安装依赖

cd src

./build/install-build-deps.sh

在Ubuntu 22版本上,大多数依赖软件的版本都比要求的高,因此一路就下来了。

4、生成Ninja工程文件

gn gen out/Default (目标输出目录out/Default)

编译报错:

1)gn: command not found 或者 gclient command not found

解决办法:

因为 depot_tools 环境变量配置有误,没有正确找到 depot_tools 目录下的 gn 或 gclient 工具,确认 ~/.bashrc 文件配置是否正确。或者不能使用sudo。

2)编译错误

解决方法如下:

gn gen 成功后,提示如下:

5、编译

ninja -C out/Default

耗时: 09:45 - 11:37

成功后,在out/Default/obj文件夹下生成静态库——libwebrtc.a

二、Android版本

1、安装depot_tools

和linux一样,如果装过了就省略这一步。

2、拉取代码:

fetch --nohooks webrtc_android

gclient sync

代码总大小: 27.65G。

3、安装依赖:

cd src

./build/install-build-deps.sh

./build/install-build-deps-android.sh (最新版没有这一步了,省略)

source build/android/envsetup.sh

4、生成Nijia文件

gn gen out/Default --args='target_os="android" target_cpu="arm64" is_debug=false'

5、编译:

Ninja -C out/Default

虚拟机新装的ubuntu会报没有gcc的错误,需要运行 sudo apt-get install gcc。

编译用时: real 206m9.113s

6、输出文件

在Default目录下找自己需要的输出文件,比如libjingle_so.so。

标签: webrtc

本文转载自: https://blog.csdn.net/zhangpf6699/article/details/134138777
版权归原作者 C编程思想 所有, 如有侵权,请联系我们删除。

“WebRtc源码下载与编译(完整版)”的评论:

还没有评论