以下对应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);
浙公网安备 33010602011771号