当前位置:首页 » 《关于电脑》 » 正文

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

15 人参与  2024年04月25日 18:27  分类 : 《关于电脑》  评论

点击全文阅读


自从想要了解学习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。


点击全文阅读


本文链接:http://zhangshiyu.com/post/100231.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1