Windows下的skia编译方法

1、需要安装的软件

  • python2.7 (需要设置至系统PATH环境变量)
  • git (需要设置至系统PATH环境变量)
  • vs2017

2、需要git clone的代码,命令如下:

git clone  https://source.codeaurora.org/quic/lc/chromium/tools/depot_tools
git clone https://gitee.com/yuangu/skia.git

记得将depot_tools所在的目录设置进 系统PATH环境变量

3、初使化skia的工程

注意,因为skia大部分第三方依赖都在Google的服务器上,所以git需要使用ShadowScoks做代理

git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'

在你结束本步操作后,可以使用如下命令取消代理:

git config --global --unset http.proxy
git config --global --unset https.proxy

然后cd 到你刚才git 的skia的代码目录下:

python tools/git-sync-deps

相关操作,如图所示:

提示1

4、生成vs工程

a、重要:修改skia目录中的 gn/BUILD.gn 中的 "/WX" 为 "/WX-"

b、然后执行

bin\gn gen out\vs2017  --ide="vs2017" --args="is_debug=false target_cpu=\"x86\" win_vc=\"C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC\" win_sdk=\"C:/Program Files (x86)/Windows Kits/10\" " --sln="deskiax86"

c、修改生成的toolchain.ninja文件

把下面的代码删除掉。

cmd /c C:/Program Files (x86)/Windows Kits/10/bin/SetEnv.cmd /x86 && 

d、执行编辑

ninja -C out/vs2017

  • ninja命令由depot_tools,如果出现了没有此命令的话,你检查一下depot_tools是否加入至PATH目录。或者重启系统或者cmd来使用变量生效。
  • 如果编译时,出现mspdbcore.dll 找不到等问题,可以参考:https://blog.drawoceans.com/archives/19

5、一些问题

  1. 可能会出现闪退问题,是断在sk_abort_no_print
void sk_abort_no_print() {
#if defined(SK_BUILD_FOR_WIN) && defined(SK_IS_BOT)
    // do not display a system dialog before aborting the process
    _set_abort_behavior(0, _WRITE_ABORT_MSG);
#endif
#if defined(SK_DEBUG) && defined(SK_BUILD_FOR_WIN)
    __debugbreak();
#elif defined(__clang__)
    __builtin_debugtrap();
#else
    abort();
#endif
}

解决方法 找到如下代码

#if !defined(SK_DEBUG) && !defined(SK_RELEASE)
    #ifdef NDEBUG
        #define SK_RELEASE
    #else
        #define SK_DEBUG
    #endif
#endif

更换成

#if !defined(SK_DEBUG) && !defined(SK_RELEASE)
    #ifdef NDEBUG
        #define SK_DEBUG 
    #else
        #define SK_RELEASE
    #endif
#endif

2、无法铺满整个渲染框

将SkMatrix::kCenter_ScaleToFit 替换成 SkMatrix::kFill_ScaleToFit

转载于:https://my.oschina.net/jjyuangu/blog/3045262

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值