新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/11/14 3:28:09来源:尧图网络
Ubuntu系统中使用LLVM或者gcc编译Skia源码的方法
Ubuntu系统中使用LLVM或者gcc编译Skia源码的方法修改日期2026-02-10操作系统Ubuntu 24.04.1 desktop 64位版本桌面环境GNOME Wayland编译器LLVM or gcc说明1本文档介绍Ubuntu系统中使用LLVM或者gcc编译Skia源码的方法说明2该编译Skia源码的方法是为了适配nim_duilib项目使用Skia库如果用于其他库使用可能需要修改编译参数说明3获取skia源码后需要更新部分源码更新方法见后续文档否则编译无法通过。使用了一个第三方库expat说明4操作过程中假设源码的根目录是~/develop目录如果使用其他目录可替换为实际的目录。一、准备工作安装必备的软件安装完成系统后可用升级系统到最新1sudo apt update2sudo apt upgrade -y安装依赖的软件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安装完成后的各个软件版本信息如下gcc 已经是最新版 (4:13.2.0-7ubuntu1)。 g 已经是最新版 (4:13.2.0-7ubuntu1)。 gdb 已经是最新版 (15.0.50.20240403-0ubuntu1)。 make 已经是最新版 (4.3-4.1build2)。 git 已经是最新版 (1:2.43.0-1ubuntu7.3)。 ninja-build 已经是最新版 (1.11.1-2)。 generate-ninja 已经是最新版 (0.0~git20240221.03d10f1-1)。 python3 已经是最新版 (3.12.3-0ubuntu2)。 cmake 已经是最新版 (3.28.3-1build7)。 llvm 已经是最新版 (1:18.0-59~exp2)。 clang 已经是最新版 (1:18.0-59~exp2)。 unzip 已经是最新版 (6.0-28ubuntu4.1)。 libfontconfig-dev 已经是最新版 (2.15.0-1.1ubuntu2)。 libgl1-mesa-dev 已经是最新版 (25.0.7-0ubuntu0.24.04.2)。 libgles2-mesa-dev 已经是最新版 (25.0.7-0ubuntu0.24.04.2)。 libegl1-mesa-dev 已经是最新版 (25.0.7-0ubuntu0.24.04.2)。 libvulkan-dev 已经是最新版 (1.3.275.0-1build1)。二、使用脚本自动编译推荐该脚本自动完成相关源码下载和编译工作。选定一个工作目录创建一个脚本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

相关资讯

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

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/13 0:43:49

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/13 10:09:00

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/13 13:31:48

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/13 16:11:45

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/13 0:02:27

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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