webrtc 01 win10 webrtc编译

01 代码下载

和 chromium 配置完全一致,只是 fetch 参数指定为 webrtc
本次编译采用 4664 分支(版本号96)

fetch --no-history webrtc
cd src
#git checkout -b b4664 remotes/branch-heads/4664
# 4664 可以编译过,没跑起来
git checkout -b b4515 remotes/branch-heads/4515
# 如果下载失败,已经有.gclient文件,可以用下面命令
gclient sync -D --nohooks --with_branch_heads --with_tags --output-json="log.json"
gclient runhooks # 或者 gclient runhooks --force

02 编译选项

02.01 h264直接使用vs2019编译失败

:: 带 h264 或者 ffmpeg 使用vs2019 编译不过,提示找不到  stdatomic.h 头文件。
gn gen out/Debug --ide=vs2019 --args="is_debug=true is_component_build=false is_clang=false rtc_include_tests=false proprietary_codecs=true rtc_use_h264=true use_rtti=true use_custom_libcxx=false treat_warnings_as_errors=false target_os=\"win\" target_cpu=\"x86\" ffmpeg_branding=\"Chrome\""
ninja -C out\Debug 

:: 带 h264 或者 ffmpeg 使用vs2019 编译不过,提示找不到  stdatomic.h 头文件。
gn gen out/Release --ide=vs2019 --args="is_debug=false is_component_build=false is_clang=false rtc_include_tests=false proprietary_codecs=true rtc_use_h264=true use_rtti=true use_custom_libcxx=false treat_warnings_as_errors=false target_os=\"win\" target_cpu=\"x86\" ffmpeg_branding=\"Chrome\""
ninja -C out\Release 

编译错误,提示找不到 stdatomic.h 头文件。

/Zc:inline /Gw /TC /c ../../third_party/ffmpeg/libavcodec/autorename_libavcodec_utils.c /Foobj/third_party/ffmpeg/ffmpeg_internal/autorename_libavcodec_utils.obj /Fd"obj/third_party/ffmpeg/ffmpeg_internal_c.pdb"
D:\git\oray\chromium\test\src\third_party\ffmpeg\libavcodec\error_resilience.h(23): fatal error C1083: 无法打开包括文件: “stdatomic.h”: No such file or directory
[1702/3928] CC obj/third_party/ffmpeg/ffmpeg_internal/fft_float.obj
D:\git\oray\chromium\test\src\third_party\ffmpeg\libavcodec\fft_template.c(276): warning C4003: 类函数宏的调用“SPLIT_RADIX_PERMUTATION”参数不足
D:\git\oray\chromium\test\src\third_party\ffmpeg\libavcodec\fft_template.c(276): warning C4003: 类函数宏的调用“PROCESS_FFT_PERM_SWAP_LSBS”参数不足
D:\git\oray\chromium\test\src\third_party\ffmpeg\libavcodec\fft_template.c(276): warning C4003: 类函数宏的调用“PROCESS_FFT_PERM_DEFAULT”参数不足

02.02 默认不带h264 和ffmpeg选项,用vs2019可以编译

:: 默认选项可以编译通过
gn gen out/Debug --ide=vs2019 --args="is_debug=true is_component_build=false is_clang=false rtc_include_tests=false use_rtti=true use_custom_libcxx=false treat_warnings_as_errors=false target_os=\"win\" target_cpu=\"x86\""
ninja -C out\Debug

:: 默认选项可以编译通过
gn gen out/Release --ide=vs2019 --args="is_debug=false is_component_build=false is_clang=false rtc_include_tests=false use_rtti=true use_custom_libcxx=false treat_warnings_as_errors=false target_os=\"win\" target_cpu=\"x86\""
ninja -C out/Release

02.03 带h264,ffmpeg选择,使用clang编译

:: ffmpeg 需要使用 clang 编译,即指定 is_clang=true use_lld=true
gn gen ../out/Debug --ide=vs2019 --args="target_os=\"win\" target_cpu=\"x86\" is_debug=true is_component_build=false rtc_include_tests=false use_rtti=true use_custom_libcxx=false treat_warnings_as_errors=false is_clang=true use_lld=true  rtc_use_h264=true ffmpeg_branding=\"Chrome\" proprietary_codecs=true"
ninja -C ../out/Debug

:: ffmpeg 需要 clang 编译,即指定 is_clang=true use_lld=true
gn gen ../out/Release --ide=vs2019 --args="target_os=\"win\" target_cpu=\"x86\" is_debug=false is_component_build=false rtc_include_tests=true use_rtti=true use_custom_libcxx=false treat_warnings_as_errors=false is_clang=true use_lld=true  rtc_use_h264=true ffmpeg_branding=\"Chrome\" proprietary_codecs=true"
ninja -C ../out/Release

:: ffmpeg 需要使用 clang 编译,即指定 is_clang=true use_lld=true
gn gen ../out/DebugX64 --ide=vs2019 --args="target_os=\"win\" target_cpu=\"x64\" is_debug=true is_component_build=false rtc_include_tests=false use_rtti=true use_custom_libcxx=false treat_warnings_as_errors=false is_clang=true use_lld=true  rtc_use_h264=true ffmpeg_branding=\"Chrome\" proprietary_codecs=true"
ninja -C ../out/DebugX64

:: ffmpeg 需要 clang 编译,即指定 is_clang=true use_lld=true
gn gen ../out/ReleaseX64 --ide=vs2019 --args="target_os=\"win\" target_cpu=\"x64\" is_debug=false is_component_build=false rtc_include_tests=true use_rtti=true use_custom_libcxx=false treat_warnings_as_errors=false is_clang=true use_lld=true  rtc_use_h264=true ffmpeg_branding=\"Chrome\" proprietary_codecs=true"
ninja -C ../out/ReleaseX64

02.04 取消 windows 编译的 include 显示

默认windows 编译会有很多头文件提示,可以关闭该选项。

:: 很重要的参考资料
gn args --list out\Debug
::去掉显示头文件的包含树
::修改src\build\toolchain\win\BUILD.gn,将/showIncludes删除掉
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值