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

简介: Windows环境VS2017编译skia库-m84,亲测成功,使用官方编译的方法

环境准备


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前面。

image.png


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

image.png


在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


下载链接:https://download.csdn.net/download/qq_35824650/12398406


本人也备份了一份:https://download.csdn.net/download/libaineu2004/12432424



源码编译


参数说明

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\""


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


https://download.csdn.net/download/libaineu2004/12436349



参考文献


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


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


https://blog.csdn.net/qq_35824650/article/details/105984644 国内正确编译V8和Skia


https://gitee.com/QtSkia/QtSkia google的 skia渲染框架, 集成到Qt中


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


相关文章
|
6月前
|
Ubuntu Unix Linux
在Windows上轻松安装和使用Ubuntu的方法详解
继续点击“Continue”按钮以继续安装流程,随后选择清理磁盘并安装操作系统的选项。 接下来,在安装过程中,你需要选择时区。为了与你的地理位置相匹配,请选择中国上海作为你的时区设置。 在安装过程中,你还需要设置计算机的名称以及账号密码。请务必牢记这些信息,因为它们将作为你登录系统的凭证。
|
10月前
|
安全 数据安全/隐私保护 Windows
如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
808 16
如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
|
7月前
|
Linux Windows
Windows 10/11从官网下载ISO的方法
本文介绍了两种从微软官网下载Windows 10/11 ISO镜像的方法。一是通过修改浏览器User Agent为Linux系统,使官网提供ISO下载链接;二是使用UUPDUMP工具,从官网下载并转换为ISO格式,支持最新开发版,操作简便。
|
10月前
|
XML 存储 搜索推荐
Omnissa Dynamic Environment Manager 2503 - 个性化动态 Windows 桌面环境管理
Omnissa Dynamic Environment Manager 2503 - 个性化动态 Windows 桌面环境管理
164 7
Omnissa Dynamic Environment Manager 2503 - 个性化动态 Windows 桌面环境管理
|
4月前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
197 11
|
5月前
|
运维 iOS开发 Windows
windows电脑备案ios APP获取公钥和证书指纹Sha-1值的方法
在阿里云进行APP备案、在备案IOS端的环节的时候,发现需要我们将p12证书安装在电脑上,再用xcode或或钥匙串访问来获取这个证书的公钥和sha-1值。 但是大部分开发uniapp应用的同学们,或者进行发布的运维人员的电脑都是windows,无法按照阿里云的教程来获取ios的公钥和sha-1。备案就被卡主了。 这里介绍下另一个方法,就是使用香蕉云编来在线上传证书获取。如下图所示,打开香蕉云编后,找到下图这个功能
877 0
|
10月前
|
Ubuntu 数据库 虚拟化
Windows 环境下 Odoo 安装保姆级教程
本教程详细介绍了在 Windows 系统上通过虚拟机部署 Odoo 的完整流程。首先确认硬件需求,确保 CPU、内存和磁盘空间满足最低配置;接着安装 VMware Workstation Pro 并创建 Ubuntu 虚拟机,配置桥接网络以实现主机与虚拟机的通信;随后借助微聚云快速安装预配置好的 Odoo 环境,简化复杂环境搭建;最后通过浏览器访问虚拟机 IP,完成 Odoo 数据库初始化及基础设置。整个过程清晰易懂,适合新手快速上手 Odoo 部署。
1247 4
|
11月前
|
存储 运维 监控
提升Windows Server环境安全性:ADAudit Plus的五大关键优势
在Windows Server环境中,内置的安全审计工具虽有用,但存在专业门槛高、耗时及功能缺失等问题。第三方工具ADAudit Plus应运而生,其五大优势包括:日志聚合、关键活动检测、定制化报告、灵活安全配置和长期日志保留,有效提升系统监控与合规能力。选择ADAudit Plus,助力企业更高效应对审计挑战,强化安全性。
260 2
|
12月前
|
存储 安全 虚拟化
Windows 11 绕过 TPM 方法总结,通用免 TPM 镜像下载 (2025 年 2 月更新)
Windows 11 绕过 TPM 方法总结,通用免 TPM 镜像下载 (2025 年 2 月更新)
1136 0
Windows 11 绕过 TPM 方法总结,通用免 TPM 镜像下载 (2025 年 2 月更新)
|
4月前
|
安全 数据安全/隐私保护 虚拟化
Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
1092 2
Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)

热门文章

最新文章