跳到主要内容

开发环境准备

本文档将指导你完成 ElenixOS 开发环境的搭建,包括必要的工具安装、系统要求以及环境验证方法。

系统要求

支持的操作系统

操作系统支持状态备注
macOS (Intel / Apple Silicon)完全支持推荐使用 Homebrew 安装依赖
Ubuntu 20.04+ / Debian 11+完全支持推荐使用 apt 安装依赖
Windows 10+ (x86_64)完全支持推荐使用 MSYS2 或 WSL2
其他 Linux 发行版基本支持需自行安装对应依赖包

硬件要求

  • CPU: 双核及以上,支持 march=native 编译优化
  • 内存: 至少 4GB RAM(推荐 8GB 及以上)
  • 磁盘空间: 至少 2GB 可用空间(含依赖和构建产物)
  • 显示器: 支持 OpenGL 2.0 及以上(模拟器 GUI 显示)

必需工具

编译器工具链

工具最低版本用途
CMake3.10构建系统配置
C 编译器 (GCC/Clang)C99 标准支持C 代码编译
C++ 编译器C++17 标准支持部分组件编译
Make / Ninja-构建执行

SDL2

模拟器使用 SDL2 实现窗口显示和输入处理,是模拟器运行的必需依赖。

Python 3.10

ElenixOS 使用 Python 脚本辅助开发流程,包括 API 绑定生成等任务。

环境搭建步骤

macOS

使用 Homebrew 安装所需依赖:

# 安装 CMake
brew install cmake

# 安装 SDL2
brew install sdl2

# 安装 Python 3.10(如尚未安装)
brew install python@3.10

# 验证安装
cmake --version
sdl2-config --version
python3.10 --version

Ubuntu / Debian

使用 apt 安装所需依赖:

# 更新包索引
sudo apt update

# 安装 CMake
sudo apt install cmake

# 安装 SDL2 开发库
sudo apt install libsdl2-dev

# 安装 Python 3.10
sudo apt install python3.10 python3.10-venv

# 安装构建工具
sudo apt install build-essential

# 验证安装
cmake --version
sdl2-config --version
python3.10 --version

Windows (MSYS2)

使用 MSYS2 安装所需依赖:

# 更新包数据库
pacman -Sy

# 安装 CMake
pacman -S mingw-w64-x86_64-cmake

# 安装 SDL2
pacman -S mingw-w64-x86_64-SDL2

# 安装 GCC 工具链
pacman -S mingw-w64-x86_64-toolchain

# 安装 Python 3.10
pacman -S mingw-w64-x86_64-python3.10

# 安装 Make
pacman -S make

Windows (WSL2)

在 WSL2 的 Ubuntu 环境中,按照上述 Ubuntu 的步骤安装即可。如需使用原生 Windows GUI,需额外配置:

# 安装 WSL2 必要的图形库
sudo apt install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxcursor-dev

# 安装 freetype 开发库(可选,用于字体渲染)
sudo apt install libfreetype6-dev

验证环境

检查 CMake

cmake --version

输出应包含版本信息,如 cmake version 3.10.0 或更高版本。

检查 SDL2

sdl2-config --version

输出应为 SDL2 的版本号,如 2.0.20

检查编译器

gcc --version
# 或
clang --version

确保编译器支持 C99 标准。

检查 Python

python3.10 --version

输出应为 Python 3.10.x

获取代码

# 克隆模拟器仓库(含子模块)
git clone --recursive https://github.com/ElenixOS/ElenixOS-Simulator.git
cd ElenixOS-Simulator

# 如果已克隆但未拉取子模块
git submodule update --init --recursive

仓库包含以下主要组件:

目录说明
ElenixOS/ElenixOS 核心源码
lvgl/LVGL 图形库
FreeRTOS/FreeRTOS 实时内核(可选)
lv_drivers/LVGL 显示和输入驱动
main/模拟器主程序
config/FreeRTOS 配置
fs/文件系统模拟目录

可选依赖

FreeRTOS

如需在模拟器中启用 FreeRTOS 支持,无需额外安装依赖,项目已包含 FreeRTOS 源码。

LVGL 扩展功能

某些 LVGL 高级功能需要额外的库支持:

功能依赖库CMake 选项
SDL 渲染加速SDL2LV_USE_DRAW_SDL=ON
PNG 解码libpngLV_USE_LIBPNG=ON
JPEG 解码libjpeg-turboLV_USE_LIBJPEG_TURBO=ON
视频播放FFmpegLV_USE_FFMPEG=ON
字体渲染freetypeLV_USE_FREETYPE=ON

常见问题

CMake 找不到 SDL2

确保 SDL2 开发库已正确安装,且 sdl2-config 在 PATH 中。如仍无法找到,可手动指定 SDL2 路径:

cmake -DSDL2_DIR=/path/to/sdl2 ..

编译时出现 march=native 错误

如果编译器不支持 march=native 优化标志,可在 CMake 配置时禁用:

cmake -DCMAKE_C_FLAGS="-march=x86-64" ..

Python 脚本运行失败

ElenixOS-Tools.py 需要 Python 3.10。如系统中安装了多个 Python 版本,确保 3.10 是默认版本或在虚拟环境中使用。