环境准备

  • Windows7/10电脑需要能访问https://skia.org/和https://skia.googlesource.com/skia.git
  • 在Windows上安装Visual Studio 2017
  • 在Windows上安装Python v2.7.x(必须是v2,不能使用v3),32位版本,例如python-2.7.18.msi。环境变量path需要添加python v2.7.x。如果电脑同时还装了v3,那么环境变量path需要把v2排在v3前面。

  • 在Windows终端输入命令"python --version"可以查看python2是否正确安装。

  • 在Windows上安装Git工具

下载源码和依赖库

截止目前,skia的版本是m84,https://skia.googlesource.com/skia.git/+refs

我们使用Windows终端命令行,把源码下载:

1、先设置git http代理:

>git config --global http.proxy http://127.0.0.1:8000
>git config --global https.proxy http://127.0.0.1:8000

设置成功,代理信息会记录在C:\Users\firecat\.gitconfig

2、再用git命令下载skia源码

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

3、再下载依赖库
>cd skia
>python tools/git-sync-deps

下载gn和ninja工具

网上有好心人已经准备好了,直接下载就行了,然后解压到\skia\bin里面。环境变量path需要添加bin路径,例如我的路径是:

F:\tmp-source\qt-hmi\skia\skia\bin

下载链接:gn&ninja32位版_gnninja-C++文档类资源-CSDN下载

本人也备份了一份:Windows环境VS2017编译skia库-m84,亲测成功,使用官方编译的方法_Windows+VS2017编译Skia-C++文档类资源-CSDN下载

源码编译

  • 参数说明

is_debug=true 表示Debug

is_component_build=true 表示动态库编译【推荐,否则是静态库编译,到时候生成的静态库运行时是MTd/MT】

target_cpu="x86" 表示Win32平台

ide=vs 表示使用VS IDE编译 【不推荐,容易出错】

  • x64位 Debug编译:

>bin\gn gen out\Debug64
>bin\gn args out\Debug64

#这句话输入之后,会弹出一个记事本文件,请手动输入要编译的参数

# Set build arguments here. See `gn help buildargs`.
is_debug=true
is_component_build=true

保存记事本,然后继续终端命令

>bin\gn gen out\Debug64
>bin\ninja -C out\Debug64

  • x64位 Release编译:

>bin\gn gen out\Release64
>bin\gn args out\Release64
# Set build arguments here. See `gn help buildargs`.
is_debug=false
is_component_build=true
>bin\gn gen out\Release64
>bin\ninja -C out\Release64

  • x86位 Debug编译:

>bin\gn gen out\Debug86
>bin\gn args out\Debug86
# Set build arguments here. See `gn help buildargs`.
is_debug=true
is_component_build=true
target_cpu="x86"
>bin\gn gen out\Debug86

#执行ninja之前,需要先打开路径\skia\out\Debug86的toolchain.ninja文件,手动删除所有

"cmd /c C:/Program Files (x86)/Windows Kits/10/bin/SetEnv.cmd /x86 &&"的文本内容,

#进入文件夹C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64

拷贝以下3个文件到\skia\out\Debug86

msobj140.dll
mspdb140.dll
mspdbcore.dll
>bin\ninja -C out\Debug86

  • x86位 Release编译:

>bin\gn gen out\Release86
>bin\gn args out\Release86
# Set build arguments here. See `gn help buildargs`.
is_debug=false
is_component_build=true
target_cpu="x86"
>bin\gn gen out\Release86

#执行ninja之前,需要先打开路径\skia\out\Release86的toolchain.ninja文件,手动删除所有

"cmd /c C:/Program Files (x86)/Windows Kits/10/bin/SetEnv.cmd /x86 &&"的文本内容,

#进入文件夹C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64

拷贝以下3个文件到\skia\out\Release86

msobj140.dll
mspdb140.dll
mspdbcore.dll

>bin\ninja -C out\Release86

常用的gn命令

bin\gn help args
bin\gn help static_library
bin\gn help buildargs
bin\gn args --list out\Release64
bin\gn args --list out\Debug64
bin\gn args --list out\Release86
bin\gn args --list out\Debug86
bin\ninja -help

之前编译失败的命令,也记录一下

不建议使用VS的编译方式,容易失败

>bin/gn gen out/Static --args="is_official_build=true skia_use_libpng=false skia_use_zlib=false skia_use_libjpeg_turbo=false skia_use_harfbuzz=false skia_use_libwebp=false skia_use_expat=false"vs要用管理员身份打开,不然编译的时候会报错,说什么没有访问权限
x64 Debug
>bin\gn gen out/vsx64d --ide=vs --args="is_debug=true is_official_build=false is_component_build=true"
x64 Release
>bin\gn gen out/vsx64 --ide=vs --args="is_debug=false is_official_build=false is_component_build=true"x86 Debug
>bin\gn gen out/vsx86d --ide=vs --args="is_debug=true is_official_build=false is_component_build=true target_cpu=\"x86\""
x86 Release
>bin\gn gen out/vsx86 --ide=vs --args="is_debug=false is_official_build=false is_component_build=true target_cpu=\"x86\""

最终编译好的库文件/头文件/案例

Windows环境VS2017编译skia库-m84之已编译的库文件等-C++文档类资源-CSDN下载

参考文献

https://www.jianshu.com/p/4225f4342d18 [图形引擎Skia之一]源码下载与编译(Windows)

https://blog.drawoceans.com/codes/19/ 在Windows上使用VS2017编译64位和32位Skia

国内正确编译V8和Skia_ScSofts的博客-CSDN博客 国内正确编译V8和Skia

QtSkia: google的 skia渲染框架, 集成到Qt中 google的 skia渲染框架, 集成到Qt中

doc/Examples-zh.md · QtSkia/QtSkia - Gitee.com SkCanvas是一个类似于QPainter的画笔,但性能和功能都比QPainter强大许多。

Windows环境VS2017编译skia库-m84,亲测成功,使用官方编译的方法相关推荐

  1. 亲测成功 -> 反编译微信小程序

    http://www.xs-box.com/ 小盒软件 内网 · 穿透 · 让你在家也能管理公司服务器 · 实现远程办公梦想 是一个将局域网个人电脑.服务器代理到公网的内网穿透工具 可以让外网直接访问 ...

  2. 反编译微信小程序 亲测成功 补充解决常见问题 (详细最新教程)

    网络上相关文章良莠不齐,随时间的流逝或许随着微信的更新,有出现编译不成功的现象.我这里总结一下我最新的编译过程.可成功获得小程序源码. 1.环境准备和工具下载 反编译需要 nodejs的环境 下载链接 ...

  3. windows下编译skia库

    windows下编译skia库 环境需求: 1.安装python2.7.x: python3系列可能又某些库不支持,所以推荐使用python2.7.15(最新). 如何检查是否安装python: 1. ...

  4. Android编译Skia库

    Android编译Skia库 本文档提供两种方法编译Skia库 使用aosp源码进行编译 使用skia源码进行编译 两种编译方法都可以编译,并且都可以使用在多个平台中,且可以使用在不同Android版 ...

  5. Android开发实战一之搭建开发环境-附测试实例(已亲测)

    使用JDK.Android SDK.Eclipse + ADT搭建开发环境      附测试实例     (已亲测) ----------------------------------------- ...

  6. vs中imshow函数报错_Win7下VS2010中配置Opencv2.4.4的方法(32位和64位都有效)(亲测成功)...

    在vs2010下配置opencv是件痛苦的事情,一点点错误可能就会导致莫名其妙的报错,各种error让人郁闷不已,这里提供给大家一篇vs2010下配置opencv2.4.4的方法,我是64位的win7 ...

  7. 最新阿里云短信服务接口类【亲测成功】

    阿里大于 最新的阿里云短信接口,适用于阿里大于搬家以后的情况. 之前一直用阿里大于的短信接口,最近上项目时发现阿里大于悄悄地搬家到了阿里云!阿里云的SDK文件繁多,看得一头雾水!下面代码是最新的可适用 ...

  8. 实战:借助ucloud镜像加速功能下载镜像(亲测成功)-2022.1.1

    实战:借助ucloud镜像加速功能下载镜像(亲测成功)-2022.1.1 目录 文章目录 实战:借助ucloud镜像加速功能下载镜像(亲测成功)-2022.1.1 目录 实验环境 实验软件 1.背景 ...

  9. typora+picgo+smms图床配置(亲测成功)

    PicGo(app)设置smms图床(亲测成功) 文章目录 PicGo(app)设置smms图床(==亲测成功==) 1.PicGo软件下载安装 2.smms图床注册设置 1.PicGo软件下载安装 ...

最新文章

  1. 无法用计算机名只能用ip访问局域网计算机,win10无法通过计算机名访问共享但能用IP的解决步骤...
  2. Android XML 不常用属性
  3. 石川es6课程---5、函数-参数
  4. Fuxi ServiceModeJob 多租户(Quota Group) 功能介绍
  5. Reference to Different Versions of the Same Assembly
  6. Hibernate----Hibernate小配置
  7. 大哥特斯拉:造车“三傻”,咱们抱团?
  8. 十一假期朋友圈鄙视链,你在第几层?
  9. C 库函数 - pow()
  10. 如何使用jQuery刷新页面?
  11. input输入框计算总和
  12. 深度装机大师一键重装_deep深度装机大师一键安装Win10 64位旗舰版
  13. 上机7 java异常处理,JavaSE学习笔记(七)——java异常处理机制
  14. css美化table的方法
  15. SD卡--摄像头中扩容卡原理及检测机制
  16. JavaWeb会话和会话技术之Cookie
  17. 用DownSub 导出TED和youtube字幕
  18. STM32生成bin文件
  19. Translational Psychiatry:重度抑郁障碍的神经进行性特征:内在连接组分析
  20. 硬件探索——STM32F4控制74HC595数码管

热门文章

  1. 如何高效做本科毕业答辩幻灯?
  2. 填色涂鸦好工具,色彩艳丽又卫生,ohuhu马克笔体验
  3. 【Flask】Flask框架简介
  4. H5 选项卡—三级菜单联动
  5. 测试如何写好功能测试用例
  6. 保单失效及复效(Temporary Lapse and Reinstatement)
  7. python django前端重构_Django学习笔记(11)——开发图书管理页面
  8. 微服务架构下的配置治理模式
  9. 已解决Usage:pip [options] no such option: —verson
  10. 服装企业数字化转型是必然的趋势——思维的转变