编译webrtc

国内编译webrtc是真的不容易,找了几个国内的镜像,说是可以编译下载webrtc,但是试了下其实不行,都有各种问题,还是需要能够访问外网的机器才行.我编译webtrc的机器是x86-64 ubuntu20.04.

1.下载代码

mkdir webrtc_checkout
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=$PWD/depot_tools:$PATH
cd webrtc_checkout
fetch --nohooks webrtc
#用于中断后继续下载
gclient sync

最好是一次下载完,下载完后用这个命令多试几次​ gclient sync --nohooks --no-history.

2.下载依赖:

cd webrtc_checkout/src
./build/install-build-deps.sh
可能需要替换源:
用
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial main universe
替换
deb http://security.ubuntu.com/ubuntu xenial-security main
deb http://cz.archive.ubuntu.com/ubuntu xenial main universe
继续执行
./build/install-build-deps.sh --no-chromeos-fonts 后面的也可以不加



3.构建项目

gn gen out/Default
我这里就有几个报错:
1.webrtc-checkout/src$ gn gen out/Default
ERROR at //build/config/sysroot.gni:64:7: Assertion failed.
      assert(
      ^-----
Missing sysroot (//build/linux/debian_sid_amd64-sysroot). To fix, run: build/linux/sysroot_scripts/install-sysroot.py --arch=amd64
See //build/config/sysroot.gni:65:11: 
          exec_script("//build/dir_exists.py",
----------------------------------------------------------------------
2.webrtc-checkout/src$ gn gen out/Default
ERROR at //build/timestamp.gni:31:19: Script returned non-zero exit code.
build_timestamp = exec_script(compute_build_timestamp,
                  ^----------
Current dir: /home/yanzhl/Workspace/p2p_work/webrtc-checkout/src/out/Default/
Command: python3 /home/yanzhl/Workspace/p2p_work/webrtc-checkout/src/build/compute_build_timestamp.py default
Returned 1.
stderr:

Traceback (most recent call last):
  File "/home/yanzhl/Workspace/p2p_work/webrtc-checkout/src/build/compute_build_timestamp.py", line 126, in <module>
    sys.exit(main())
  File "/home/yanzhl/Workspace/p2p_work/webrtc-checkout/src/build/compute_build_timestamp.py", line 112, in main
    last_commit_timestamp = int(open(lastchange_file).read())
FileNotFoundError: [Errno 2] No such file or directory: '/home/yanzhl/Workspace/p2p_work/webrtc-checkout/src/build/util/LASTCHANGE.committime'

第一个报错按照提示执行命令

build/linux/sysroot_scripts/install-sysroot.py --arch=amd64

第二个报错

python ./build/util/lastchange.py ./build/util/LASTCHANGE

再次执行:gn gen out/Default完成构建.

4.编译

ninja -C out/Default
报错:
1.webrtc-checkout/src$ ninja -C out/Default
ninja: Entering directory `out/Default'
ninja: error: '../../resources/audio_processing/test/py_quality_assessment/noise_tracks/city.wav', needed by 'py_quality_assessment/noise_tracks/city.wav', missing and no known rule to make it
需要执行:gclient sync
再次构建编译成功

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows 10上编译WebRTC可以按照以下步骤进行: 1. 首先,确保你的系统已经安装了Visual Studio。WebRTC在Windows上的编译需要使用Visual Studio环境。 2. 下载depot_tools,它是一个用于下载WebRTC源代码的工具。可以在GitHub上找到depot_tools的源码,并按照文档中的步骤进行安装。 3. 打开命令提示符或PowerShell,并导航到你想要保存WebRTC源代码的文件夹。 4. 使用以下命令克隆WebRTC的代码仓库: ``` git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git ``` 5. 添加depot_tools到系统的环境变量中。在命令提示符或PowerShell中,输入以下命令: ``` set PATH=%PATH%;[depot_tools目录的路径] ``` 这将使你能够在任何目录中使用depot_tools中的命令。 6. 使用以下命令下载WebRTC的源代码: ``` fetch --nohooks webrtc ``` 此命令将下载WebRTC的源代码到当前文件夹下的src目录中。 7. 进入src目录,并使用命令执行Hook脚本以获取编译所需的依赖项: ``` cd src gclient runhooks ``` 8. 接下来,根据你的编译需求选择合适的方案,并使用gn生成构建配置文件。 如果你想做一个默认构建,可以使用以下命令: ``` gn gen out/Default ``` 如果你想构建一个调试版本,可以使用以下命令: ``` gn gen out/Debug --args="is_debug=true" ``` 构建配置文件将生成在out/Default或out/Debug目录中。 9. 最后,使用ninja命令来编译WebRTC: ``` ninja -C out/Default ``` 或者,如果你选择了调试版本: ``` ninja -C out/Debug ``` 这将编译WebRTC并生成可执行文件和库文件。 以上是在Windows 10上编译WebRTC的简要步骤。请注意,这只是一个概述,实际操作可能会根据具体环境有所不同。在实际操作中,请根据WebRTC项目的文档和最新的指南进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值