内容提要
本文介绍了在龙芯笔记本上安装Rust的过程,包括交叉编译和安装常用软件。还提到了在宿主机上交叉编译的方法和所需时间。
延伸解读
为何需要交叉编译 Rust
龙芯 2F 芯片基于 mips3 架构,而 Rust 默认使用 mips64r2 架构编译,因此官方提供的 rust-bin 无法直接在龙芯笔记本上运行。虽然 Rust 对 MIPS 提供 Tier 3 支持,但必须通过交叉编译生成适配 mips3 的二进制包,才能正常使用 fd、rg 等依赖 Rust 的工具。
交叉编译的关键配置
使用 crossdev 交叉编译 Rust 时,需启用 system-bootstrap USE flag 并禁用 system-llvm,同时启用宿主机的 LLVM target。目标架构需从 mips64r2 改为 mips3,可通过 patch 或 env 文件实现。编译时 CFLAGS 必须还原为 crossdev 默认配置,避免 -march、-mtune 等选项导致问题。
本地编译与交叉编译的取舍
在龙芯笔记本上直接编译 Rust 软件速度极慢,例如 bat 耗时 2 小时 30 分,ripgrep 约 1 小时 10 分。虽然交叉编译可大幅缩短时间,但过程更复杂,部分软件需禁用 lto、调整 RUSTONIG 环境变量或使用 QEMU 模拟,适合愿意处理额外配置的用户。
安装软件时的注意事项
安装 lsd 时,CFLAGS 不能包含 -march=loongson2f,否则编译失败,改用 -march=mips3 可正常编译。生成的 lsd 二进制虽显示为 mips64r2 架构,但实际可运行。交叉编译 git-delta 和 bat 时,还需禁用 RUSTONIG_DYNAMIC_LIBONIG 或 lto 等选项。
Q&A
如何在龙芯笔记本上安装Rust?
在龙芯笔记本上安装Gentoo后,使用crossdev交叉编译Rust编译器,并确保目标架构为mips3。
Rust对MIPS架构的支持情况如何?
Rust对MIPS提供Tier 3级别支持,但需要交叉编译以适应龙芯2F芯片的mips3架构。
交叉编译Rust时需要注意哪些配置?
需要启用system-bootstrap USE flag,禁用system-llvm,并确保CFLAGS还原为默认配置。
在龙芯笔记本上编译软件的速度如何?
由于龙芯CPU性能较弱,编译软件速度较慢,通常需要一小时以上。
如何解决交叉编译时的常见问题?
在交叉编译时,某些软件需要禁用lto或特定环境变量以成功编译,可能还需进行一些hack。
在宿主机上交叉编译Rust软件时需要注意什么?
需要处理一些问题,可能需要进行hack,且直接编译可能会遇到未解决的Bug。