首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
macOS系统中使用clang/clang++编译Skia源码的方法
📅 2026/9/29 2:47:42
✍️ 爱科研究院
👁 阅读 3,247
macOS系统中使用clang/clang编译Skia源码的方法修改日期2026-02-10操作系统macOS编译器clang/clang说明1本文档介绍macOS系统中使用clang/clang编译Skia源码的方法说明2该编译Skia源码的方法是为了适配nim_duilib项目使用Skia库如果用于其他库使用可能需要修改编译参数说明3获取skia源码后需要更新部分源码更新方法见后续文档否则编译无法通过。使用了一个第三方库expat说明4操作过程中假设源码的根目录是~/develop目录如果使用其他目录可替换为实际的目录。一、准备工作安装必备的软件安装完成系统后需要做的工作安装Xcode命令行工具xcode-select --install验证安装clang --version安装Homebrew/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)如果失败可以查找其他源来安装。更新Homebrewbrew update系统已经自带无需安装的软件git make unzip python3安装cmakebrew install cmake安装ninjabrew install ninja安装gn需要从源码编译gnmkdir ~/develop cd ~/develop git clone https://github.com/timniederhausen/gn cd gn python3 build/gen.py ninja -C out sudo cp out/gn /usr/local/bin/ gn --version二、使用脚本自动编译推荐该脚本自动完成相关源码下载和编译工作。选定一个工作目录创建一个脚本build.sh将下面已经整理好脚本复制进去保存文件。然后在控制台为脚本文件添加可执行权限最后运行该脚本chmod x build.sh ./build.sh脚本文件内容如下#!/bin/bash git clone https://github.com/rhett-lee/skia_compile chmod x ./skia_compile/macos/build_skia_all_in_one.sh ./skia_compile/macos/build_skia_all_in_one.sh编译时如果获取skia_compile代码失败可以多重试几次。编译完成的库文件在工作目录的skia/out子目录中按编译选项放在相应的子目录。三、手动编译过程第1步获取skia源码并更新修改代码获取skia源码#!/bin/bash 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.arm64.Releasegn gen out/llvm.arm64.release --argstarget_cpu\arm64\ 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.arm64.release编译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四、资源链接Skia的编译文档库如需获取最新版本的文档请点击访问skia_compilenim_duilib界面库的代码库请点击访问nim_duilibnim_duilib 是一款基于C开发的跨平台界面库源于经典的 duilib 界面库并进行了深度优化与功能扩展支持Windows/Linux/macOS/FreeBSD平台支持的Linux系统包括OpenEuler、OpenKylin、UbuntuKylin、统信UOS、中科方德、Ubuntu、Fedora、Debian等专注于简化桌面应用的高效开发。其设计融合了DirectUI理念通过XML描述界面布局实现视觉与逻辑的分离显著提升开发灵活性与维护性。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/9/29 2:47:42
Company Brain 开源部署与实战指南:在自有 Cloudflare 账号上部署一个能记忆、能动手的 Slack 团队智能体
2026/9/29 2:47:42
深度解析【最新版】Claude Code Windows 版配置 TaoToken 统一 API 通道:从 settings.json 骨架到首次调用验证
2026/9/29 2:47:42
Apache Beam KafkaToPubsub 示例深入解析:从 Apache Kafka 到 Google Cloud Pub/Sub 的流式数据管道
2026/9/29 5:27:57
13款音频驱动数字人产品深度评测
2026/9/29 5:27:57
Commitizen适配器完全解析:原理、选型与自定义实践
2026/9/29 5:27:57
Jspreadsheet 数据网格剪贴板详解:copy/paste 方法与剪贴板事件实战
2026/9/29 5:27:57
awesome-agentic-ai-zh Track A 读者体验工程:核心词契约、五星编辑评分与渐进式揭露的落地实践
2026/9/29 5:27:57
OpenAlice 的 opencli-reader 技能:用可选社区 opencli CLI 实现只读网站数据访问
2026/9/29 5:22:57
解决 MoviePy 经 PyInstaller 打包后 std.py 相关问题
2026/9/29 0:02:32
开源模型端侧落地实战:量化、推理加速与Agent上下文管理
2026/9/29 0:02:32
AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成
2026/9/29 0:02:32
Java采购管理系统实战:从数据库设计到事务一致性
2026/9/28 2:37:38
网站建设的英语怎么说?别只背单词,看完这套安全完整流程才敢上线
2026/9/28 5:00:42
新手入门看这篇:建设网站加盟避坑指南与SEO实操
2026/9/28 8:17:28
论文AIGC疑似度是什么意思?想查论文AI率有哪些免费工具?