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无法单独使用,加到VS工程里,报N多链接错误。

只好自己编译了。

单独编译SKIA

Windows下编译指南:h。首先你系统得有Python,我们编译过CEF,有了。

下载skia到这里:需要使用git,depot_tools很全,什么都有。

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

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

然后使用git下载skia:


然后执行下列命令:

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库,见下图:

skialibs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值