导航

windows下简单使用webrtc

Posted on 2026-01-28 15:50  talenth  阅读(10)  评论(0)    收藏  举报

以下对应webrtc版本: 2025年10月20号的版本

1 下载webrtc源码, 解压

2 下载编译工具, 解压, 添加到path环境变量

depot_tools

3 生成vs项目

powershell切到src目录, 

set DEPOT_TOOLS_UPDATE=0
set DEPOT_TOOLS_WIN_TOOLCHAIN=0

gn gen out\Default --ide=vs

4 修改 src\out\Default\args.gn文件,如下

查看所有可配置选项的命令 gn args --list E:/google/webrtc/src/out/Default

# 关键配置:禁用 libc++,使用 MSVC 标准库
use_libcxx = false
use_custom_libcxx = false

host_cpu="x64"
host_os="win"

# 确保使用 clang-cl 编译器但链接 MSVC 标准库
is_clang = true
clang_use_chrome_plugins = false

is_debug = true
enable_iterator_debugging=true
default_crt = "mt" #这个目前不起作用, 实际生成的就是mtd

# 其他重要配置
rtc_use_h264 = false # 如果不需要 H.264,可以禁用以简化依赖

use_rtti = true # 启用 RTTI(部分库可能需要)

5 打开out\Default\all.sln, 编译 webrtc这个项目, 生成webrtc.lib

6 新启一个项目

<1> 头文件目录添加(根据实际编译出错的地方修改)

E:\google\webrtc\src

E:\google\webrtc\src\third_party\abseil-cpp

<2> 预处理指令添加

NOMINMAX

<3> 链接器输入

webrtc.lib
winmm.lib
ws2_32.lib
dmoguids.lib
msdmo.lib
wmcodecdspuuid.lib

<4> 修改webrtc源文件(编译错误, 改完得重编译webrtc.lib)

system_wrappers/include/clock.h 63行左右

int64_t time_fraction =
DivideRoundToNearest(int64_t{ntp_time.fractions()} * 1'000'000,
NtpTime::kFractionsPerSecond);

为 

int64_t time_fraction =
DivideRoundToNearest(int64_t{ntp_time.fractions()} * 1'000'000,
(int64_t)NtpTime::kFractionsPerSecond);