中科方德操作系统下编译skia

中科方德下编译Skia源码的方法

  • 修改日期:2025-05-11
  • 操作系统:方德桌面操作系统V5.0 NFSDesktop-5.0-G230-240806-amd64 64位版本(桌面环境:X11)
  • 编译器可选择:LLVM
  • 操作过程中,源码根目录是/home/develop/目录,如果使用其他目录,可替换为实际的目录
  • 说明1:该编译Skia源码的方法,是为了适配nim duilib 项目使用Skia库,如果用于其他库使用,可能需要修改编译参数
  • 说明2:最新的编译方法中,不再使用Skia中依赖的第三方库,所以不再需要运行python3 tools/git-sync-deps来获取第三方库的源码

一、准备工作

  1. 安装完成系统后,可用升级系统到最新:
    (1)升级系统:sudo apt update
    (2)升级系统:sudo apt upgrade
  2. 安装gcc/g++: 系统中用sudo apt install gcc g++安装,安装后的版本号为: 10.2.1 20210110
  3. gdb环境确认:系统自带,GNU gdb (10.1.90.20210103-git);
  4. 安装make: 系统中用sudo apt install make安装,安装后的版本号为:4.3;
  5. python环境确认:系统自带的版本是3.9.2,可以满足需要;
  6. 安装cmake: 系统中用sudo apt install cmake安装,安装后的版本号为:3.18.4;
  7. 安装git:系统中用sudo apt install git安装,安装后的版本号为:2.30.2;
  8. 安装ninja:系统中用sudo apt install ninja-build安装,安装后的版本号为:1.10.1;
  9. 安装gn:系统中用sudo apt install generate-ninja安装,安装后的版本号为:1000 (09c9e5e)
  10. 安装LLVM编译环境:
    (1)系统中用sudo apt install llvm安装,安装后的版本号为:11.0.1;
    (2)系统中用sudo apt install clang安装,安装后的版本号为:11.0.1;
  11. 安装libfontconfig-dev:系统中用sudo apt install libfontconfig-dev,安装后的版本号为:2.13.1
  12. 安装OpenGL:sudo apt install libgl1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev

二、获取skia源码及相关依赖

  1. > cd /home/develop
  2. > git clone https://github.com/google/skia.git
  3. > git checkout 22d94029d2ac36dfac8d631fa0d1b467f0ab45a7
  4. 备注:skia源码更新的日期:Date: 2025/5/9 8:01:50
  5. 更新修改代码:
  • 下载需要更新的代码到本地:git clone https://github.com/rhett-lee/skia_compile
  • 更新文件:解压skia.2025-05-09.src.zip,将解压后的文件,覆盖/home/develop/skia/目录中的所有同名文件。
  • 注意事项:该修改的代码的SHA-1值,需要比对,如果不是这个版本的代码,直接覆盖可能有问题,需要手工修改;
  • 修改代码解决的问题:修改部分其他源码:修复运行时的几个小问题。

三、编译skia(编译器:LLVM)

  1. 进入skia源码目录:
    > cd /home/develop/skia
  2. 编译skia静态库(LLVM.x64.Release)
  • gn gen out/LLVM.x64.Release --args="target_cpu=\"x64\" cc=\"clang\" cxx=\"clang++\" clang_win_version=\"17\" is_trivial_abi=false is_official_build=true skia_use_libwebp_encode=false skia_use_libwebp_decode=false skia_use_libpng_encode=false skia_use_libpng_decode=false skia_use_zlib=false skia_use_libjpeg_turbo_encode=false skia_use_libjpeg_turbo_decode=false skia_enable_fontmgr_win_gdi=false skia_use_icu=false skia_use_expat=false skia_use_xps=false skia_enable_pdf=false skia_use_wuffs=false skia_enable_svg=true skia_use_expat=true skia_use_system_expat=false is_debug=false extra_cflags=[\"-DSK_DISABLE_LEGACY_PNG_WRITEBUFFER\"]"
  • ninja -C out/LLVM.x64.Release

四、编译skia(编译器:gcc/g++,如果不使用LLVM编译器,也可选择用gcc/g++编译)

  1. 进入skia源码目录:
    > cd /home/develop/skia
  2. 编译skia静态库(LLVM.x64.Release)
  • gn gen out/LLVM.x64.Release --args="target_cpu=\"x64\" cc=\"gcc\" cxx=\"g++\" is_trivial_abi=false is_official_build=true skia_use_libwebp_encode=false skia_use_libwebp_decode=false skia_use_libpng_encode=false skia_use_libpng_decode=false skia_use_zlib=false skia_use_libjpeg_turbo_encode=false skia_use_libjpeg_turbo_decode=false skia_enable_fontmgr_win_gdi=false skia_use_icu=false skia_use_expat=false skia_use_xps=false skia_enable_pdf=false skia_use_wuffs=false skia_enable_svg=true skia_use_expat=true skia_use_system_expat=false is_debug=false extra_cflags=[\"-DSK_DISABLE_LEGACY_PNG_WRITEBUFFER\"]"
  • ninja -C out/LLVM.x64.Release

资源链接

更多的资源,参见代码仓库地址:nim_duilib

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值