遵循Skia官方构建指南遇gn gen报错,求Windows编译Skia技巧
Windows编译Skia问题解决指南
depot_tools的作用
- 这是Google为Chromium、Skia这类项目维护的工具集,核心就是帮你搞定构建相关的杂事:
- 自动安装适配Skia版本的GN、Ninja等构建工具,不用自己找对应版本下载配置
- 通过自带的
gclient命令拉取Skia依赖的第三方库(比如ICU、HarfBuzz),这些依赖不在Skia的GitHub仓库里 - 同步Skia代码与依赖的版本,避免版本不兼容问题
GN命令错误的解决
你遇到的错误是Windows命令行不识别单引号导致的,把命令里的单引号换成双引号就行,正确命令:
gn gen out/Shared --args="is_official_build=true is_component_build=true"
另外要注意:GN是depot_tools里的工具,不是Skia代码自带的,必须先把depot_tools添加到系统PATH最前面,否则命令行找不到GN。
Windows编译Skia关键提示
- 先搞定depot_tools配置:
- 把depot_tools克隆到本地(比如
C:\depot_tools) - 把这个目录加到系统PATH最顶端(避免和本地已有的GN、Ninja冲突)
- 用管理员权限打开CMD/PowerShell,进入Skia目录,运行
gclient sync拉取所有依赖——这一步绝对不能省,不然GN会找不到依赖配置
- 把depot_tools克隆到本地(比如
- 编译环境要搭对:
- 装Visual Studio(推荐2022),必须勾选「C++开发工具」和「Windows SDK」组件
- 必须用VS的开发者命令提示符启动编译(或者手动运行
vcvarsall.bat配置环境),不然会出现编译工具链找不到的问题
- 其他实用提醒:
- 别用WSL编译Windows版Skia,原生Windows环境更稳定
- 拉依赖失败就检查网络,必要时设置系统代理(depot_tools会自动使用)
- 初期调试可以把
is_official_build=true改成false,关闭优化后编译速度会快很多
内容的提问来源于stack exchange,提问作者olaf
相关产品推荐
相关产品推荐

