Windows环境VS2017编译skia库,亲测成功,借助skui的方法

简介: Windows环境VS2017编译skia库,亲测成功,借助skui的方法

Skia简介


Skia是一个开源的二维图形库,提供各种常用的API,并可在多种软硬件平台上运行。谷歌Chrome浏览器、Chrome OS、Fuchsia、安卓、Flutter、火狐浏览器、火狐操作系统以及其它许多产品都使用它作为图形引擎。Skia由谷歌出资管理,任何人都可基于BSD免费软件许可证使用Skia。Skia开发团队致力于开发其核心部分, 并广泛采纳各方对于Skia的开源贡献。


源代码: skia.googlesource.com/skia


提议: bug.skia.org


论坛: skia-discuss@googlegroups.com


skia官网: https://skia.org


谷歌github镜像: https://github.com/google/skia



Skui简介

本人亲测,采用Google官方提供的编译方式很难成功。


偶然发现了skui这个开源项目。skui使用了skia库。


Skia-based C++ UI framework


https://github.com/skui-org/skui


https://blog.csdn.net/czhzasui/article/details/103457105


因为编译skui的过程,会编译skia库,殊途同归,最终可以得到我想要的skia库。



Skui编译


下面描述编译过程:


1、我的编译环境:Win7 x64,VS2017



2、源码下载,注意Windows和Linux命令行的\和/的区别。


从github上克隆仓库


git clone https://github.com/skui-org/skui.git


进入仓库


cd skui


更新子模块仓库


git submodule update --init --recursive

如果网络不好,可能会在拉取skia的时候卡住,这时候进入3rdparty目录再次拉取


cd 3rdparty

git submodule update --init --recursive

cd ..


这样就拉取了skui所有源码。


如果实在还是拉取不成,那就直接点击github相关的链接,进入后,手动下载。


image.png


点击进入“3rdparty”目录,

image.png



进入页面,使用页面默认的版本,下载skia源码


image.png



3、源码准备好,就可以编译


mkdir ..\skui-build

cd ..\skui-build


接下来,可以选择MSVC编译,也可以选择Ninja编译

cmake ..\skui -G "Visual Studio 15 2017 Win64"


或者 cmake ..\skui -G Ninja

cmake --build .


笔者注:如果是使用MSVC编译,个人建议还是使用cmake-gui.exe可视化的方式代替命令行。


MSVC编译,请选择Windows SDK v10.x版本,千万不要选v8.1版本,否则编译skia库会失败。


另外,cmake工程选项,使用默认值,不做任何修改。skia是静态库编译,MDd/MD的运行时库。


image.png



4、运行一下例程,是个很小的弹出窗口。


F:\tmp-source\qt-hmi\skia\skui-build>examples\widget_gallery\debug\widget_gallery.exe


image.png



5、关于widget_gallery.exe运行报异常的问题,我提交了issues


https://github.com/skui-org/skui/issues/12


If you want to play around with the code as is, you can change gui/window_windows.c++:L29 to this:


const window_flags window::default_flags = window_flag::exit_on_close | window_flag::anti_alias;


---


https://ninja-build.org/


https://github.com/ninja-build/ninja


https://blog.csdn.net/qq_20373723/article/details/84061647 windows 安装ninja


相关文章
|
4月前
|
XML C# 数据格式
掌握了在Windows平台上查看DLL依赖的方法
掌握了在Windows平台上查看DLL依赖的方法
534 4
|
2月前
|
弹性计算 开发框架 安全
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
|
3月前
|
Dart 搜索推荐 IDE
Windows下Zed编辑器配置Dart环境
本文介绍了Dart编程语言及其主要框架Flutter的优势,并推荐使用轻量级编辑器Zed进行Dart开发。详细步骤包括Dart环境的安装与配置,Zed编辑器的安装与个性化设置,以及如何在Zed中编写并运行Dart的HelloWorld程序。通过自定义任务实现Dart文件的快速运行,提高了开发效率。
|
2月前
|
存储 缓存 安全
硬盘数据恢复:恢复硬盘数据的9个实用方法(Windows版)
无论是工作文档、家庭照片,还是其他珍贵的数字资产,数据丢失总是一件让人头疼的事情。然而,当硬盘发生问题时,不必过于慌张——只要正确应对,许多数据都可以被成功恢复。本文将从常见数据丢失原因到具体恢复方法,为您提供全面的硬盘数据恢复指导。
|
4月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
110 1
|
4月前
|
Oracle 关系型数据库 MySQL
Mysql(1)—简介及Windows环境下载安装
MySQL 是一个流行的关系型数据库管理系统(RDBMS),基于 SQL 进行操作。它由瑞典 MySQL AB 公司开发,后被 Sun Microsystems 收购,现为 Oracle 产品。MySQL 是最广泛使用的开源数据库之一,适用于 Web 应用程序、数据仓库和企业应用。
86 2
|
4月前
|
弹性计算 数据安全/隐私保护 Windows
阿里云国际版无法远程连接Windows服务器的排查方法
阿里云国际版无法远程连接Windows服务器的排查方法
|
4月前
|
安全 Windows
Windows系统实现exe服务注册的方法都有哪些?
【10月更文挑战第5天】Windows系统实现exe服务注册的方法都有哪些?
781 0
|
2天前
|
安全 网络安全 数据安全/隐私保护
Windows Server 2025 Active Directory 重置用户密码
密码重置是管理员日常任务之一,用户因忘记或多次输错密码导致账户锁定时需进行重置。本文介绍在Active Directory服务器上重置密码的三种方法。