Windows下从源代码编译Skia

在PPAPI里面画图,能够结合第三方的图形库。比方Cairo、Skia。

Google Chrome、Chromium和Android都使用Skia作为画图引擎。我也来试试Skia,先过编译关。

foruok原创。如需转载请关注foruok的微信订阅号“程序视界”联系foruok。

CEF编译出的Skia不可单独用

Chromium使用Skia。Windows下从源代码编译CEF说明了怎么编译CEF,它会捎带着编译Chromium。里面有Skia,但它编译出来的skia_library.lib无法单独使用,加到VSproject里。报N多链接错误。

仅仅好自己编译了。

单独编译Skia

Windows下编译指南:https://skia.org/user/quick/windows。首先你系统得有Python。我们编译过CEF,有了。

下载skia到这里:https://skia.org/user/download

须要使用git。depot_tools非常全。什么都有。

我们之前编译CEF,已自己主动下载depot_tools。在E:\sources\CEF\2526\depot_tools,设置到path中:

set path=E:\sources\CEF\2526\depot_tools;%path%

然后使用git下载Skia:

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

然后执行下列命令:

cd %SKIA_CHECKOUT_DIR%
SET "GYP_GENERATORS=ninja,msvs"  //告诉GYP。产生ninja构建文件和msvs构建文件
python bin/sync-and-gyp
SET "GYP_GENERATORS="

上面命令完毕后,基于ninja的构建文件在这里:E:\sources\skia\out\Release(Debug)\build.ninja。基于VS2013的解决方式在这里:E:\sources\skia\out\skia.sln。

我选择编译Release版本号。

默认编译“most”目标。most.ninja在这里:E:\sources\skia\out\Release\obj\gyp,它指定编译skia_lib和dm、SampleApp、HelloWorld等模块。

编译命令例如以下:

cd out\Release
ninja

编译到effects模块,出错了。说:

ninja: build stopped: subcommand failed.

加个參数,再来:

ninja -v > skia_build.log

研究skia_build.log,发现错误信息例如以下:

[6/1807] ninja -t msvc -e environment.x86 – “E:\software\VS2013_64_update4\VC\bin\amd64_x86\cl.exe” /nologo /showIncludes /FC @obj\tools\imgslice.imgslice.obj.rsp /c ….\tools\imgslice.cpp /Foobj\tools\imgslice.imgslice.obj /Fdimgslice.pdb

FAILED: ninja -t msvc -e environment.x86 – “E:\software\VS2013_64_update4\VC\bin\amd64_x86\cl.exe” /nologo /showIncludes /FC @obj\src\effects\effects.SkDisplacementMapEffect.obj.rsp /c ….\src\effects\SkDisplacementMapEffect.cpp /Foobj\src\effects\effects.SkDisplacementMapEffect.obj /Fdeffects.pdb

e:\sources\skia\src\effects\skdisplacementmapeffect.cpp : error C2220: 警告被视为错误 - 没有生成“object”文件

e:\sources\skia\src\effects\skdisplacementmapeffect.cpp : warning C4819: 该文件包括不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

错误C2220是由于把全部警告当做错误了,编译时加了/WX标记。而警告C4819。MSDN说,“在具有不能表示文件里全部字符的代码页的系统上编译ANSI 源文件时,出现C4819”。

记得之前编译CEF(參考Windows下从源代码编译CEF)时说要设置系统locale为英文,再试试吧。

(⊙o⊙)…,真过了。

编译完毕后,lib文件和exe文件都在E:\sources\skia\out\Release文件夹下。有这么些skia库,见下图:

试着执行一下HelloWorld.exe(在E:\sources\skia\out\Release文件夹下)。效果例如以下图:

嗯,不错,能够继续前进了。

下次我会把PPAPI和Skia结合起来试试。



其它參考文章:

时间: 2024-10-10 10:38:29

Windows下从源代码编译Skia的相关文章

windows下用vs2010编译ffmpeg

转载自;http://q1q2q3q4q5q6ln.blog.163.com/blog/static/500794332014666536283/ (注意:请务必先阅读:七,后记补充:) ffmpeg是一个开源的多媒体库,使用非常广泛.在linux下编译ffmpeg非常简单,而在Windows下编译就不是那么容易了.一般在windows下使用MinGW的gcc toolchain进行编译,这样的话,因为ffmpeg的导出函数均是C风格,因而gcc编译的lib可以被vs链接.但是gcc的debug

手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言开发的,不可避免的,libav源码使用了一些gcc的特性,那么在Windows下很难使用VC编译,但是使用MinGW编译却简单多了,下面我将根据自己的经历逐步介绍使用MinGW编译libav的过程以及在此过程中遇到的问题及其解决方法. 1      安装MinGW编译环境 1.1    安装MinG

【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持

Windows下使用VS2008编译OpenCV2.1 添加Intel TBB和Python支持 步骤: 1.仔细阅读OpenCV官网上的InstallGuide:http://opencv.willowgarage.com/wiki/InstallGuide 2.在"2) Install Prerequisite Libraries and Tools"中提到了如果想支持Python调用需要Python 2.6或者 2.7版本,而且还需要NumPy和SciPy库.升级Python至2

Windows下用cmake编译Caffe

Windows下用cmake编译Caffe 2018年8月24日 23:35:41 by ChrisZZ 环境说明 系统: Windows10 编译器:Visual Studio 2015 构建器:CMake 3.12 Caffe: BVLC官方Caffe的windows分支 CUDA: 9.2 CuDNN:7.0 终端: cmd窗口 具体步骤 1. 下载代码 进cmd敲: d: cd work git clone https://github.com/BVLC/caffe caffe-BVLC

Windows下使用Rtools编译R语言包

使用devtools安装github中的R源代码时,经常会出各种错误,索性搜了一下怎么在Windows下直接打包,网上的资料也是参差不齐,以下是自己验证通过的. 一.下载Rtools 下载地址:https://cran.r-project.org/bin/windows/Rtools/ 根据自己安装的R版本,下载兼容的Rtools即可,我下载的是Rtools35.exe 二.安装Rtools Windows下的安装都是傻瓜式的,一步步点确定即可,有两个地方需要注意: 2.1 安装路径 第一次安装

windows下使用cmake编译zlib与libpng libjpeg

win7下使用VS2010编译jpeglib 1.下载源代码下载地址:http://www.ijg.org/files/,     选择最新版本的windows版本压缩包,进行下载.     jpegsr9a.zip    1042 Kb    Sun Jan 19 10:26:10 2014    Zip Compressed Data 2.解压缩压缩包,修改文件名jconfig.vc为jconfig.h 3.打开VS2010的命令行窗口     程序菜单         Microsoft

Windows 下使用 GNUstep 编译并运行 Objective-C 程序

今晚上开始看<Objective-C 程序设计(第4版)>这本书(OSChina 正在做此书的书评活动,详情请看这里),到现在为止看到第 7 章,于是想动手试试写两简单的程序编译跑跑看. 不习惯 Mac,在 Windows 下装了个 GNUstep 也可以玩. 非常简单的几步,你也来试试吧? 1. 下载并安装 GNUstep 下载地址:http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/ 有三个文件是必须安装的,分别是: gnuste

windows下ffmpeg的编译

编译ffmpeg-20150428版本所需资源在http://download.csdn.net/detail/phenixzhong/8647531中,每项资源是当前的最新版本. 编译步骤: 1.安装 mingw 和 msys 执行下载文件:mingw-get-inst-20111118.exe, 在第3步选择"Download latest repository catalogues" 选择安装路径:D:\MinGW(我将其安装到D盘) 在"Select Componen

OpenCV在Windows平台下的源代码编译

OpenCV库官方站点为http://opencv.org/. 在该站点能够下载最新的OpenCV for Windows,比如当前我下载的是opencv-2.4.9.exe ,双击该文件解压到某个文件夹下,解压后的根文件夹为opencv,opencv文件夹下有2个子文件夹,分别为build和sources,build文件夹中存放的是已经编译好的库,而sources文件夹中存放的是源码. 以下我们会在sources文件夹中编译源码. 在sources文件夹中能够看到有个CMakeLists.tx