操作系统与前置条件:Windows/macOS/Linux 环境准备与系统级依赖安装

Compose 桌面应用、Compose Multiplatform 或 Compose for Web 的本地开发,都需要一套跨操作系统的系统级依赖。不同平台在编译工具链、图形库和运行时支持上存在显著差异。本章梳理三者的核心依赖、安装命令与验证方法,帮助你快速搭好夹具底层。

原理:系统级依赖的角色

Compose 编译流水线依赖以下几类系统组件:

  • JDK & JRE:Kotlin 编译器和 Compose 编译器插件运行于 JVM;建议使用 JDK 17 或更高版本。
  • C/C++ 编译工具链:Skia 或自定义渲染时需要 C++ 后端;Windows 需要 MSVC,macOS 使用 Clang,Linux 使用 GCC。
  • 图形与窗口系统:macOS 依赖 Metal,Linux 需要 X11/Wayland + Mesa,Windows 使用 DirectX 或 OpenGL。
  • 构建工具:CMake、Ninja、Gradle 的本地绑定。
  • 版本管理:Git(拉取 Compose 示例和依赖)。

实现流程:分平台安装步骤

以下表格列出三个主流操作系统所需的依赖包与安装来源:

组件 Windows macOS Linux (Ubuntu/Debian)
JDK 17+ Oracle / Adoptium / Amazon Corretto Homebrew 或 Adoptium apt install openjdk-17-jdk
C++ 工具链 Visual Studio Build Tools 2022 (含 MSVC) Xcode Command Line Tools apt install build-essential
CMake 官方安装器 / Chocolatey / Scoop brew install cmake apt install cmake
Ninja Scoop 或手动下载 brew install ninja apt install ninja-build
图形依赖 (系统自带 DirectX) Metal 框架(Xcode 自带) apt install libgl1-mesa-dev libfontconfig1-dev
Git Git for Windows / Scoop 内建 / brew install git apt install git

核心命令与配置

以下命令涵盖了三种操作系统上最简洁的安装方式(建议优先使用包管理器):

# Windows (PowerShell 管理员模式,使用 Scoop)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
iwr -useb get.scoop.sh | iex
scoop install git openjdk17 cmake ninja visualstudio2022-workload-vctools

# macOS (Homebrew)
xcode-select --install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install openjdk@17 cmake ninja git

# Linux (Ubuntu 22.04 / 24.04)
sudo apt update
sudo apt install -y openjdk-17-jdk build-essential cmake ninja-build git libgl1-mesa-dev libfontconfig1-dev

验证环境

安装完成后,执行以下命令确认各组件版本正确加入 PATH:

java -version
javac -version
git --version
cmake --version
ninja --version
# Linux 下额外验证 OpenGL
ldconfig -p | grep libGL
提示:Windows 用户安装 Visual Studio Build Tools 后,务必从“开始菜单”运行“Developer PowerShell for VS 2022”,否则 CMake 无法找到 MSVC 编译器。

常见错误与解决

  • “Unable to locate package openjdk-17-jdk”(Linux):先运行 sudo apt update,若仍找不到,添加 ppa:openjdk-r/ppa 仓库。
  • CMake 报“CMAKE_C_COMPILER not set”(Windows):未使用 Developer PowerShell,或 Build Tools 安装时未勾选“C++ CMake tools for Windows”。
  • macOS 下 java -version 显示旧版本:Homebrew 安装的 JDK 需要手动链接:sudo ln -sfn $(brew --prefix)/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk。
  • Linux 下渲染空白:缺少 libgl1-mesa-dev 或 libfontconfig1-dev,检查图形驱动是否为 Mesa 软件渲染。

稳定性与性能优化

  • 统一 JDK 版本:团队内使用 .sdkmanrc 或 jabba 锁定 JDK 17,避免 Gradle 构建不一致。
  • Windows 下使用 Scoop 替代手动安装,方便版本切换和清理缓存。
  • macOS 上定期执行 brew cleanup 和 brew autoremove,避免磁盘占用膨胀。
  • Linux 下可启用 Ninja 并行编译:cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release,缩短首次构建时间。
注意:Compose Multiplatform 项目在 JDK 8 下可能无法编译 Compose 编译器插件,请务必使用 JDK 17+。
系统依赖安装流程 选择操作系统 Windows 安装 Git, JDK 17 VS Build Tools + CMake macOS Xcode CLT + Homebrew JDK 17, CMake, Ninja Linux (Ubuntu) build-essential + JDK libgl, libfontconfig 验证环境配置 java, cmake, ninja --version ⚠ 说明: 不同 Compose 子项目(Desktop/Web/Android)对图形后端的依赖略有差异,但上述基础依赖是所有场景共用的。