Windows平台webRTC编译
2022-4-7 aqi_wolf
1. Visual Studio安装
选择最新的vs2022,用的是社区版,安装时选择自定义安装
a)勾选使用C++的桌面开发
b) Windows 10 SDK安装10.0.20348.0 取消10.0.1904.0
c)勾选MFC及ATL这两项
d) 安装完VS2022后,必须安装sdk调试工具。打开控制面板->程序与功能,找到Windows Software Development Kit, 点更改
勾选Debugging Tools For Windows
2. 安装depot_tools
从https://storage.googleapis.com/chrome-infra/depot_tools.zip下载depot_tools安装后,解压到电脑任一位置,并把depot_tools目录的路径加到系统环境变量Path里
3. 获取WebRtc源码
a) 需要代理
b)打开cmd窗口,输入gclient安装必须工具
c)设置环境临时变量如
set vs2022_install=C:\Program Files\Microsoft Visual Studio\2022\Community
set GYP_MSVS_OVERRIDE_PATH=C:\Program Files\Microsoft Visual Studio\2022\Community
set GYP_GENERATORS=msvs-ninja,ninja
set WINDOWSSDKDIR=C:\Program Files (x86)\Windows Kits\10
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set GYP_MSVS_VERSION=2022
d) 创建webrtc源码存放目录,并获取webrtc(编译完大概占用23g的电脑空间)
mkdir d:\webrtc
cd d:\webrtc
fetch --nohooks webrtc
gclient sync
3.编译工程
编译生成release版本
cd d:\webrtc\src
gn gen out/Default --ide=vs2022 --sln=webrtc --args="use_lld=false is_debug=false"
4.参考
https://webrtc.github.io/webrtc-org/native-code/development/
5. 编译遇到的问题:
a)环境变量含中文导致写环境变量失败
UnicodeEncodeError: 'gbk' codec can't encode character '\u04e2' in position 3840: illegal multibyte sequence
修改src\build\toolchain\win\setup_toolchain.py
f.write(env_block.encode('utf-8').decode('GBK'))
b) lld-link: [0;31merror: [0mprocedure symbol record for `operator new`
添加参数use_lld=false
发表评论: