操作系统与前置条件: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+。