写作本文时使用的webrtc版本为:
branch heads/67
系统Windows 7/10都可以,在“控制面板”–>“区域和语言”–>“管理”–>"更改系统区域设置"中切换到“英语(美国)”,然后重启系统。
无
Visual Studio 2017现在只提供在线安装包,为了加快在线安装的速度,可以只选择如下几个安装项:
虽然官方指南上面写的是支持10.0.15063及以后的版本,但编译选项中默认指定的是10.0.15063版本,所以建议安装10.0.15063版本。如果要使用其他版本的SDK,可以在三、 生成vs解决方案
这一步中指定--winsdk=
参数。
10.0.15063下载地址:
https://download.microsoft.com/download/0/1/1/01111605-8CDF-4A88-BB06-C20E97E8B3D5/iso_windowssdk/15063.468.170612-1856.rs2_release_svc_sec_WindowsSDK.iso
下载地址:
http://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe
安装DirectX SDK June 2010,安装完成后可能会提示“s1023”这样的错误,这是因为与系统已有的visual c++ redistributable packages版本冲突,可以忽略不管。
depot_tools是webrtc或chromium使用的源码管理工具,从此处下载:
https://storage.googleapis.com/chrome-infra/depot_tools.zip
解压到D:\webrtc\depot_tools中,添加该目录到到系统环境变量PATH。
因为webrtc或chromium使用的编译系统会自动下载与之匹配的Python和Git,为了防止编译系统错误使用原有的版本,需要将
D:\webrtc\depot_tools
路径放到PATH的最前面,至少也要放到Python和Git的前面。
先设置如下环境变量:
DEPOT_TOOLS_WIN_TOOLCHAIN = 0
GYP_GENERATORS = ninja,msvs-ninja
然后以管理员权限运行系统cmd命令行(不要使用其他命令行工具,如cmder),依次执行下面的命令:
d:
cd D:\webrtc # 用来进入webrtc目录,目录名不一样,命令也不一样
gclient # 需要使用网络代理,耗时较长
新建webrtc-checkout目录,下载源码到该目录,命令如下:
mkdir webrtc-checkout # 也可以手动新建
cd webrtc-checkout
fetch --nohooks webrtc # 获取源码
gclient sync # 更新源码
gclient runhooks # 获取DEPS文件中指定的依赖项
进入webrtc-checkout\src目录(2.3步骤中下载的源码会自动存储到该目录),执行:
gn gen --ide=vs out/Debug
或者加入详细的配置参数:
gn gen out/x64/Debug --ide=vs --args="is_debug=true target_cpu=\"x64\""
执行成功之后,在out/Debug目录中会生成all.sln解决方案文件。
另外,可以使用gn gen --help
查看帮助,节选如下:
IDE options
GN optionally generates files for IDE. Possibilities for
--ide=
Generate files for an IDE. Currently supported values:
"eclipse" - Eclipse CDT settings file.
"vs" - Visual Studio project/solution files.
(default Visual Studio version: 2017)
"vs2013" - Visual Studio 2013 project/solution files.
"vs2015" - Visual Studio 2015 project/solution files.
"vs2017" - Visual Studio 2017 project/solution files.
"xcode" - Xcode workspace/solution files.
"qtcreator" - QtCreator project files.
"json" - JSON file containing target information
--filters=
Semicolon-separated list of label patterns used to limit the set of
generated projects (see "gn help label_pattern"). Only matching targets
and their dependencies will be included in the solution. Only used for
Visual Studio, Xcode and JSON.
Visual Studio Flags
--sln=
Override default sln file name ("all"). Solution file is written to the
root build directory.
--no-deps
Don't include targets dependencies to the solution. Changes the way how
--filters option works. Only directly matching targets are included.
--winsdk=
Use the specified Windows 10 SDK version to generate project files.
As an example, "10.0.15063.0" can be specified to use Creators Update SDK
instead of the default one.
--ninja-extra-args=
This string is passed without any quoting to the ninja invocation
command-line. Can be used to configure ninja flags, like "-j".
参考:
https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md