新闻详情

新闻详情

首页 / 资讯中心 / 详情

中科方德系统中使用LLVM或者gcc编译Skia源码的方法

发布时间:2026/9/29 2:21:35来源:尧图网络
中科方德系统中使用LLVM或者gcc编译Skia源码的方法
中科方德系统中使用LLVM或者gcc编译Skia源码的方法修改日期2026-02-10操作系统方德桌面操作系统V5.0 NFSDesktop-5.0-G230-240806-amd64 64位版本桌面环境X11编译器LLVM or gcc说明1本文档介绍中科方德系统中使用LLVM或者gcc编译Skia源码的方法说明2该编译Skia源码的方法是为了适配nim_duilib项目使用Skia库如果用于其他库使用可能需要修改编译参数说明3获取skia源码后需要更新部分源码更新方法见后续文档否则编译无法通过。使用了一个第三方库expat说明4操作过程中假设源码的根目录是~/develop目录如果使用其他目录可替换为实际的目录。一、准备工作安装必备的软件安装完成系统后可用升级系统到最新1升级系统sudo apt update2升级系统sudo apt upgrade -y安装依赖的软件和Debian完全一样sudo apt install -y gcc g gdb make git ninja-build generate-ninja python3 cmake \ llvm clang unzip libfontconfig-dev libgl1-mesa-dev \ libgles2-mesa-dev libegl1-mesa-dev libvulkan-dev安装完成后的各个软件版本信息如下make 已经是最新版 (4.3-4.1nfs5)。 g 已经是最新版 (4:10.2.1-1nfs5)。 gcc 已经是最新版 (4:10.2.1-1nfs5)。 python3 已经是最新版 (3.9.2-3nfs5)。 libfontconfig-dev 已经是最新版 (2.13.1-4.2nfs5)。 cmake 已经是最新版 (3.18.4-2nfs5)。 gdb 已经是最新版 (10.1-1.7nfs5)。 libegl1-mesa-dev 已经是最新版 (20.3.5-2m45nfs5)。 libgles2-mesa-dev 已经是最新版 (20.3.5-2m45nfs5)。 libgl1-mesa-dev 已经是最新版 (20.3.5-2m45nfs5)。 clang 已经是最新版 (1:11.0-51nmu5)。 generate-ninja 已经是最新版 (0.0~git20210128.09c9e5e-1)。 libvulkan-dev 已经是最新版 (1.2.162.0-1)。 llvm 已经是最新版 (1:11.0-51nmu5)。 ninja-build 已经是最新版 (1.10.1-1)。 unzip 已经是最新版 (6.0-m191nfs5)。 git 已经是最新版 (1:2.30.2-2m40nfs5)。二、使用脚本自动编译推荐该脚本自动完成相关源码下载和编译工作。选定一个工作目录创建一个脚本build.sh将下面已经整理好脚本复制进去保存文件。然后在控制台为脚本文件添加可执行权限最后运行该脚本chmod x build.sh ./build.sh脚本文件内容如下#!/bin/bash git clone https://github.com/rhett-lee/skia_compile chmod x ./skia_compile/linux/build_skia_all_in_one.sh ./skia_compile/linux/build_skia_all_in_one.sh编译时如果获取skia_compile代码失败可以多重试几次。编译完成的库文件在工作目录的skia/out子目录中按编译选项放在相应的子目录。三、手动编译过程第1步获取skia源码并更新修改代码获取skia源码#!/bin/bash mkdir ~/develop cd ~/develop git clone https://github.com/google/skia.git git -C ./skia checkout 34aa71b8bee4648a442b7125680232d803374f19下载源码和文档并更新skia的修改代码#!/bin/bash cd ~/develop git clone https://github.com/rhett-lee/skia_compile unzip -o ./skia_compile/skia.2026-02-10.src.zip -d ./skia/更新完成后可以到skia目录中确认一下是否更新成功#!/bin/bash cd ~/develop git -C ./skia status第2步编译skia编译器LLVM进入skia源码目录cd ~/develop/skia编译skia静态库llvm.x64.Releasegn gen out/llvm.x64.release --argstarget_cpu\x64\ cc\clang\ cxx\clang\ is_trivial_abifalse is_official_buildtrue skia_use_libwebp_encodefalse skia_use_libwebp_decodefalse skia_use_libpng_encodefalse skia_use_libpng_decodefalse skia_use_zlibfalse skia_use_libjpeg_turbo_encodefalse skia_use_libjpeg_turbo_decodefalse skia_enable_fontmgr_win_gdifalse skia_use_icufalse skia_use_expatfalse skia_use_xpsfalse skia_enable_pdffalse skia_use_wuffsfalse skia_enable_svgtrue skia_use_expattrue skia_use_system_expatfalse is_debugfalse extra_cflags[\-DSK_DISABLE_LEGACY_PNG_WRITEBUFFER\]ninja -C out/llvm.x64.release第2步编译skia编译器gcc/g如果不使用LLVM编译器也可选择用gcc/g编译进入skia源码目录cd ~/develop/skia编译skia静态库gcc.x64.releasegn gen out/gcc.x64.release --argstarget_cpu\x64\ cc\gcc\ cxx\g\ is_trivial_abifalse is_official_buildtrue skia_use_libwebp_encodefalse skia_use_libwebp_decodefalse skia_use_libpng_encodefalse skia_use_libpng_decodefalse skia_use_zlibfalse skia_use_libjpeg_turbo_encodefalse skia_use_libjpeg_turbo_decodefalse skia_enable_fontmgr_win_gdifalse skia_use_icufalse skia_use_expatfalse skia_use_xpsfalse skia_enable_pdffalse skia_use_wuffsfalse skia_enable_svgtrue skia_use_expattrue skia_use_system_expatfalse is_debugfalse extra_cflags[\-DSK_DISABLE_LEGACY_PNG_WRITEBUFFER\]ninja -C out/gcc.x64.release四、资源链接Skia的编译文档库如需获取最新版本的文档请点击访问skia_compilenim_duilib界面库的代码库请点击访问nim_duilibnim_duilib 是一款基于C开发的跨平台界面库源于经典的 duilib 界面库并进行了深度优化与功能扩展支持Windows/Linux/macOS/FreeBSD平台支持的Linux系统包括OpenEuler、OpenKylin、UbuntuKylin、统信UOS、中科方德、Ubuntu、Fedora、Debian等专注于简化桌面应用的高效开发。其设计融合了DirectUI理念通过XML描述界面布局实现视觉与逻辑的分离显著提升开发灵活性与维护性。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

计算机网络自顶向下运输层:TCP/UDP抓包与代码实战 2026/9/29 13:48:23

计算机网络自顶向下运输层:TCP/UDP抓包与代码实战

简介:这份PPT课件面向计算机专业学生及网络初学者,系统讲解计算机网络体系结构中的运输层核心知识,帮助读者从自顶向下的视角理解端到端通信机制。内容围绕运输层服务展开,涵盖多路复用与多路分解、UDP无连接传输、TCP面向连接传输…

阅读更多 →
Coze私有化部署与低代码边界深度解析 2026/9/29 13:48:16

Coze私有化部署与低代码边界深度解析

1. 项目概述:当Coze不再只是“扣子”,而是一套可拆解、可重构的企业级智能体底座最近三个月,我陆续接手了六家不同行业的客户咨询,核心诉求惊人地一致:不是问“Coze怎么搭个机器人”,而是直接甩来一句&…

阅读更多 →
Kali Linux工作流优化:zsh+GNOME+neofetch三层协同美化 2026/9/29 13:48:16

Kali Linux工作流优化:zsh+GNOME+neofetch三层协同美化

1. 项目概述:这不是换壁纸,是重构你的Kali工作流你打开Kali Linux,终端里还跑着默认的bash,字体小得眯眼才能看清,命令行提示符就一个干巴巴的rootkali:~#,连当前路径都懒得显示;桌面还是GNOME …

阅读更多 →
个人外汇业务联机接口报文规范V1.21实战:从字段提取到联调避坑 2026/9/29 13:48:09

个人外汇业务联机接口报文规范V1.21实战:从字段提取到联调避坑

简介:面向银行科技、接口开发及外汇业务运维人员的外汇局联机报文规范正式版本,定位为个人外汇业务系统与商业银行自身系统间实时交互的报文格式和标准依据。文档围绕结汇/购汇信息录入、补录、回执等接口场景,系统给出请求/响应报文结构、字…

阅读更多 →
图书馆局域网系统规划与设计:从VLAN划分到设备选型全解析 2026/9/29 13:47:42

图书馆局域网系统规划与设计:从VLAN划分到设备选型全解析

简介:这是一份图书馆局域网系统规划与设计的毕业论文,可作为计算机、网络工程、信息管理专业毕业设计参考,也适合需要完成局域网组网课程设计或了解高校图书馆信息化建设的人员阅读。文档按正式论文体例编排,包含中英文摘要、关键…

阅读更多 →
FusionCube超融合架构解析:部署调优与双活A-A实践 2026/9/29 13:47:36

FusionCube超融合架构解析:部署调优与双活A-A实践

简介:面向数据中心运维、解决方案架构师和企业IT决策者,这是一份华为FusionCube 3.2虚拟化超融合基础设施技术白皮书,系统讲解超融合平台的产品价值、FusionSphere与VMware双场景架构、分布式存储、高性能与线性扩展能力,并完整阐…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉