windows下编译skia库

环境需求:

1、安装python2.7.x:

python3系列可能又某些库不支持,所以推荐使用python2.7.15(最新)。

如何检查是否安装python:

1、首先cmd输入python,如果显示了python版本号,则是已安装python
Python 2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:22:17) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
2、如果确认已安装但是还是提示
'python' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
则检查系统环境变量Path是否有python所在目录,如果没有,需要添加到系统环境变量Path中

2、安装git:

用于拉取skia源码和依赖工具depot_tools

3、安装Visual Studio:

安装Visual Studio2017或者Visual Studio2015 update3以上。
推荐安装Visual Studio2017。

准备工作:

1、下载依赖工具depot_tools

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

2、将depot_tools所在目录添加到环境变量中

测试是否成功添加,需要用cmd,输入 ninja
ninja: error: loading 'build.ninja': 系统找不到指定的文件。是配置成功
"ninja" 不是内部或外部命令,也不是可运行的程序或批处理文件。则是配置失败

3、下载Skia源码

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

4、进入到skia的源码目录

使用cmd进入skia的源码目录
cd F:/skia

5、执行python脚本

python tools/git-sync-deps

6、将skia/bin/gn.exe设置到环境变量中

测试:
cmd下输入gn
正常情况下会输出日志:ERROR No command specified. Most commonly you want "gn gen <out_dir>" to make a build dir. Or try "gn help" for more commands.
如果没配置好,则会显示
"gn" 不是内部或外部命令,也不是可运行的程序或批处理文件。则是配置失败

7、配置目录

(1)设置你的VC工具集到构建配置文件中
①用Notpad++打开 skia/gn/BUILDCONFIG.gn 文件
② 第32行, 将 win_vc = “” 的值设置为你的VisualStudio的安装目录下的VC目录。(每一台计算机的路径都不同)
比如我的设置: win_vc = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC"

(2)执行相应的命令来构建你的目标配置

## 在skia目录下执行
## 构建静态库
> gn gen out/Static
## 构建动态库
## 因为Windows平台的编译器在导出动态库的时候会检查方法定义的通用性
## 所以编译过程中会报出 C4251 和 C4275 的警告, 只是警告而已, 所以我们在此处加上 extra_cflags=[\"/wd4251\",\"/wd4275\"] 参数来忽略此警告
> gn gen out/Shared --args="is_component_build=true extra_cflags=[\"/wd4251\",\"/wd4275\"]"
## 构建Debug版本
> gn gen out/Debug
## 构建Release版本
> gn gen out/Release --args="is_debug=false"
## 直接构建VisualStudio的.sln文件
> gn gen out/sln --ide=vs

(3)配置skia/gn/BUILD.gn文件
打开skia/gn/BUILD.gn文件*,
找到# Treat warnings as errors.,将前面的"/WX"改成"/W3"
这样警告就不视为错误。

开始编译:

## 编译静态库
> ninja -C out/Static
## 编译动态库
> ninja -C out/Shared
## 编译Debug版本
> ninja -C out/Debug
## 编译Release版本
> ninja -C out/Release

windows下编译skia库相关推荐

  1. C++ Boost库:windows下编译Boost库

    文章目录 1. 需要编译的boost库 2. 编译步骤 3. 库命名规则 4. VS配置库目录 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cast C ...

  2. windows下编译skia和svg静态库

    最近引用duilib时发现使用gdi+绘制有很多问题,之前做浏览器时使用skia库,决定把底层绘制用skia替换,并且用skia的svg模块支持矢量图绘制.下面记录skia库的下载和编译 官方文档: ...

  3. Windows下编译openssl库

    1.概述 OpenSSL是一个开放源代码的软件库包,它实现了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)协议,所以应用程序可以使用这个 ...

  4. Windows下编译boost库

    需要编译的boost库 以下的库必须单独编译: Boost.Chrono Boost.System Boost.Context Boost.ProgramOptions Boost.Filesyste ...

  5. windows下编译libzip库

    源码 编译libzip需要依赖zlib的库 zlib和libzip的git代码: https://github.com/madler/zlib.git https://github.com/nih-a ...

  6. windows下编译bootst

    在Windows下编译boost库时,参考网上文章:https://blog.csdn.net/zengraoli/article/details/70187556时报错,原来是按照博主文章编译时,在 ...

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

    环境准备 Windows7/10电脑需要能访问https://skia.org/和https://skia.googlesource.com/skia.git 在Windows上安装Visual St ...

  8. Windows下编译tensorflow-gpu教程

    这两个也要看: https://zhuanlan.zhihu.com/p/29029860 https://zhuanlan.zhihu.com/p/34942873 Windows下编译tensor ...

  9. Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序

    参考:https://www.cnblogs.com/jliangqiu2016/p/7642471.html Windows下编译TensorFlow1.3 C++ library及创建一个简单的T ...

最新文章

  1. AIFramework框架Jittor特性(下)
  2. Altium Designer关闭板观察器,放大镜
  3. STL中的list详解
  4. CentOS6.9下手动编译并安装Python3.7.0
  5. Nexus刷官方下载的映像_occam
  6. Py之cupy:cupy的简介、安装、使用方法之详细攻略
  7. JMX的Hello World
  8. 在.NET Core 中使用Quartz.NET
  9. 剖析printf函数
  10. MySQL特殊语法---replace into
  11. 谷歌将推出新版Pixel 4a 5G:搭载骁龙765G处理器 售价下降至3200元
  12. STC学习:振动声光报警器
  13. python好玩的代码-这10个Python项目超有趣!
  14. Android手机通讯录制作
  15. 实验三 网际协议IP 实验报告
  16. 计算1~N之间所有奇数之和(Java)
  17. 1.[QT | QCharts | 动态显示]折线图标题字体大小无法更改
  18. 用 Mathematica 求解多项式
  19. 使用frp搭建自己的内网穿透
  20. HaaS轻应用(Python)总览

热门文章

  1. 究极深入Android网络优化——网络筑基(一)
  2. imacros自动跑代码_如何使用iMacros自动执行重复的Web浏览器任务
  3. 企业常见的纳税信用等级失分项有哪些?
  4. 中国计算机图形学研究进展
  5. MySQL数据库基础—SQL查询
  6. Mondrian学习(2):什么是mondrian
  7. 【名士点金】【金价强势未改 下一 目标在接近】
  8. 关于习而学的软件工程教育
  9. 20160510 GreenPlum4 SQL中求和相关语句的总结
  10. 来自老男孩的五篇精彩博文