环境准备
平台依赖
Linux
这里仅以Debian12为例,其他Linux系统根据包管理工具的不同,安装命令和需要安装的包可能稍有不同。
sudo apt install build-essential libssl-dev libclang-dev libc++-devsudo apt install xorg-dev libxcb-xfixes0-dev libxcb-shape0-devsudo apt install libasound2-dev
MacOS
-
Xcode
请前往Apple官网下载最新的Xcode ,根据提示完成安装。
-
Clang14+
Xcode自带Clang,请使用
clang --version
检查Clang版本,确保clang版本不低于14
Windows
-
Git
前往 https://git-scm.com/ 下载安装。
-
Clang14+
前往 https://github.com/llvm/llvm-project/releases/tag/llvmorg-18.1.8 下载
如果下载的是手动安装版本,需要手动设置
LIBCLANG_PATH
环境变量指向llvm的bin
目录。 -
Visual C++ Build Tool
可以先不安装,安装Rust时,选择安装
Visual Studio Community
即可。
安装Rust
Linux/MacOS
以下命令无需使用root权限执行
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
更多安装方法请参考:https://www.rust-lang.org/zh-CN/learn/get-started
Windows
下载rustup-init.exe , 根据提示安装即可,如果系统还没有安装Visual Studio,安装向导里需要选择安装Visual Studio Community
。
安装NodeJS
-
Debian
sudo apt updatesudo apt install nodejs -
其他平台
前往NodeJS官网下载最新的Node安装包,根据提示安装即可。
Android环境配置
如果你的应用不需要适配Android系统,可以直接跳过这部分。
安装NDK
-
前往Android官网,下载安装AndroidStudio
-
使用Android Studio里的
SDK Manager
安装如下组件。- Android SDK Platform
- Android SDK Platform-Tools
- NDK (Side by side)
- Android SDK Build-Tools
- Android SDK Command-line Tools
安装Cargo-NDK
cargo install cargo-ndkrustup target add aarch64-linux-android
环境变量配置
Linux
export ANDROID_HOME="$HOME/Android/Sdk"export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/$(ls -1 $ANDROID_HOME/ndk)"export ANDROID_NDK=$ANDROID_NDK_HOMEexport PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATHexport CARGO_NDK_SYSROOT_LIBS_PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/
MacOS
export ANDROID_HOME="$HOME/Library/Android/sdk"export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/$(ls -1 $ANDROID_HOME/ndk)"export ANDROID_NDK=$ANDROID_NDK_HOMEexport PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATHexport CARGO_NDK_SYSROOT_LIBS_PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/
Windows
[System.Environment]::SetEnvironmentVariable("ANDROID_HOME", "$env:LocalAppData\Android\Sdk", "User")$VERSION = Get-ChildItem -Name "$env:LocalAppData\Android\Sdk\ndk"[System.Environment]::SetEnvironmentVariable("ANDROID_NDK_HOME", "$env:LocalAppData\Android\Sdk\ndk\$VERSION", "User")// TODO Set PATH & CARGO_NDK_SYSROOT_LIBS_PATH env