Windows平台Skia构建疑问:GN编译参数及编译器选择
Skia Windows构建问题解答
一、构建Skia需传递给GN的核心参数
根据你的场景,常用的GN参数包括:
target_os: 固定设为"win",指定目标系统为Windowstarget_cpu: 目标架构,可选"x64"或"x86"is_debug: 调试/发布模式开关,true为调试构建(带调试信息),false为发布构建(优化编译)cc/cxx: 指定编译器路径,用Microsoft Clang的话填"clang-cl.exe"skia_use_system_libs: 设为false,因为你已经通过git-sync-deps拉取了Skia自带的依赖库skia_enable_xxx: 启用对应依赖的功能,比如skia_enable_webp、skia_enable_png(这些参数默认会根据拉取的依赖自动启用,也可手动指定)ninja_executable: 可选,指定你通过fetch-ninja获取的ninja路径,比如"bin/ninja.exe"
示例配置命令:
gn gen out/Release --args='target_os="win" target_cpu="x64" is_debug=false cc="clang-cl.exe" cxx="clang-cl.exe" skia_use_system_libs=false'
二、GN参数的查找途径
- 直接查看Skia仓库内的
gn/BUILD.gn及各子模块的BUILD文件,里面定义了所有可配置参数的默认值和说明 - 在Skia目录下执行命令
gn args out/YourBuildDir --list,会列出所有可用GN参数的类型、默认值和简要描述,这是最便捷的查询方式 - 阅读仓库内的
docs/user/build.md文档,里面梳理了常用场景的参数配置方案
三、是否使用Microsoft Clang构建Skia
完全可以,这是官方支持的推荐选项:
- Skia对Microsoft Clang有完善的兼容性测试,编译过程不会有兼容性问题
- 相比MSVC,Clang在C++标准支持、代码优化层面表现更优,同时能适配Windows平台的编译链
- 你已经安装了带Microsoft Clang的VS2019,只需在GN参数中指定
cc和cxx为clang-cl.exe即可
内容的提问来源于stack exchange,提问作者olaf
相关产品推荐
相关产品推荐

