Skia Windows 编译

本文详细介绍了在Windows环境下使用VS2017和LLVM编译Skia源码的过程,包括下载源码、配置编译选项、编译静态库和动态库的方法,以及解决常见编译问题的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Skia Windows 编译

编译环境:win10 64位、VS2017、git、LLVM

一、下载Skia相关源码

1、 下载google工具depot_tools

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

设置环境变量:

set path=当前目录/depot_tools;%path%

2、下载Skia源码

git clone https://skia.googlesource.com/skia.git

系统必须安装了python2,才能进行下一步

cd skia
python tools/git-sync-deps

二、编译

配置编译编译选项

配置编译为静态库

bin\gn gen out/Static --args="is_debug=false is_official_build=true skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false"

配置编译为动态库

bin\gn gen out/Shared --args="is_debug=false is_official_build=true is_component_build=true skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false"

Debug/Release 配置选项生成(可选)

注意:debug和Release版本配置完成后还要手动将out\Debug\obj和out\Release\obj目录下以.ninja结尾的文件中”cflags=“ 那一行中的 “/WX” 改为"/WX-" 才能够编译成功
配置编译为Debug使用(开发环境使用)

bin\gn gen out/Debug --args="is_debug=true is_official_build=false skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false"

配置编译为Release使用(开发环境使用)

bin\gn gen out/Release --args="is_debug=false skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false"

查看编译参数

bin\gn args out/Debug --list

3、编译

ninja -C out/Static //编译静态库
ninja -C out/Shared //编译动态库
ninja -C out/Debug //编译Debug使用
ninja -C out/Release  //编译Release使用

三、产物

include 头文件目录
out/Static 静态库目录
out/Shared 动态库目录
out/Debug Debug使用
out/Release Release使用

编译32位

静态库配置

bin\gn gen out/Static_x86 --args="clang_win=\"C:\Program Files\LLVM\" target_cpu=\"x86\" is_debug=false is_official_build=true skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false"

静态库编译

ninja -C out/Static_x86

动态库配置

bin\gn gen out/Shared_x86 --args="clang_win=\"C:\Program Files\LLVM\" target_cpu=\"x86\"  is_debug=false is_official_build=true is_component_build=true skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false"

动态库编译

ninja -C out/Shared_x86

其中clang_win=“C:\Program Files\LLVM” 指定了编译使用llvm ,windows下编译google推荐的方式。

编译32位问题

'C:/Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
LINK : fatal error LNK1171: 无法加载 mspdbcore.dll (错误代码: 126)
[893/966] compile ../../third_party/externals/libpng/pngwrite.c
ninja: build stopped: subcommand failed.

1、打开Static_x86下的toolchain.ninja文件,删除所有类似于“cmd /c C:/Program Files (x86)/Windows Kits/10/bin/SetEnv.cmd /x86 && ”的内容,保存。
2、然后将“C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/HostX64/x64”文件夹中的“mspdbcore.dll”、“mspdb140.dll”、“msobj140.dll”三个文件复制到“Static_x86”文件夹中。

结束

参考链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值