本文档记录了在WSL Ubuntu 22.04上搭建Rust Nightly开发环境的完整过程,包括对RISC-V目标的支持。
1. 安装基础开发工具
首先,我们需要安装一系列基础开发工具:
sudo apt install -y build-essential autoconf automake gcc g++ libmpc-dev libmpfr-dev libgmp-dev libglib2.0-dev make cmake gawk bison flex texinfo libtool patchutils bc python3 cmake wget xz-utils curl vim
2. 安装Rust和Cargo
使用官方安装脚本安装Rust版本管理器rustup
和Rust包管理器cargo
:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装完成后,应用环境变量设置到当前终端:
source "$HOME/.cargo/env"
3. 安装Rust Nightly版本
检查当前Rust版本:
rustc --version
安装nightly版本并设置为默认:
rustup install nightly
rustup default nightly
再次检查版本,确认使用的是nightly版本:
rustc --version
# 输出应类似于:rustc 1.89.0-nightly (414482f6a 2025-05-13)
4. 安装RISC-V目标支持和相关组件
# 安装RISC-V目标支持
rustup target add riscv64gc-unknown-none-elf
# 安装cargo-binutils工具
cargo install cargo-binutils --vers=0.3.3
# 安装其他必要组件
rustup component add llvm-tools-preview
rustup component add rust-src
5. 验证Rust环境
5.1 创建和测试普通Rust项目
创建一个新的Rust项目并测试:
# 创建新项目
cargo new hello_rust
cd hello_rust
# 查看项目结构
ls -la
# 查看源代码
cat src/main.rs
# 编译并运行
cargo run
# 输出:Hello, world!
5.2 测试RISC-V目标支持
创建一个针对RISC-V目标的库项目:
# 回到上级目录
cd ..
# 创建库项目
cargo new --lib hello_riscv
cd hello_riscv
# 配置Cargo.toml
echo '[lib]
name = "hello_riscv"
crate-type = ["staticlib"]
[profile.dev]
panic = "abort"
[profile.release]
panic = "abort"' >> Cargo.toml
创建适用于裸机环境的源代码:
# 使用编辑器创建源文件
nano src/lib.rs
在编辑器中输入以下内容:
#![no_std]
// 需要添加panic处理器
#[panic_handler]
fn panic(_panic: &core::panic::PanicInfo<'_>) -> ! {
loop {}
}
#[unsafe(no_mangle)]
pub extern "C" fn hello() -> i32 {
42
}
编译为RISC-V目标:
cargo build --target riscv64gc-unknown-none-elf
如果编译成功,说明Rust环境已正确配置,且RISC-V目标支持正常工作。
6. 配置注意事项
- 如果您需要加速Cargo下载依赖的速度,可以配置Cargo镜像源:
mkdir -p ~/.cargo
echo '[source.crates-io]
replace-with = "tuna"
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"' > ~/.cargo/config
- 如果您使用NAT网络或代理(如Clash),您可能不需要配置镜像源,因为官方源的访问速度已经足够快。
后续步骤
完成Rust环境搭建后,接下来需要安装QEMU模拟器,以支持运行RISC-V代码。QEMU的安装过程包括下载源码、编译和配置环境变量,这将在另一篇文档中详细说明。
评论区