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

1,651 阅读2分钟

Skia简介

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

 

Skui简介

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

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

Skia-based C++ UI framework

github.com/skui-org/sk…

blog.csdn.net/czhzasui/ar…

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

 

Skui编译

下面描述编译过程:

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

 

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

从github上克隆仓库

git clone github.com/skui-org/sk…

进入仓库

cd skui

更新子模块仓库

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

cd 3rdparty
git submodule update --init --recursive
cd ..

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

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

点击进入“3rdparty”目录,

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

 

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的运行时库。

 

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

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

 

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

github.com/skui-org/sk…

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;

 

---

ninja-build.org/

github.com/ninja-build…

blog.csdn.net/qq_20373723… windows 安装ninja