armv7-sony-vita-newlibeabihf

级别: 3

此级别支持在 PlayStation Vita 游戏机上运行的 ARM Cortex A9 处理器。

此目标平台的 Rust 支持与 Sony 无关,不是来自任何官方 Sony SDK,也没有使用任何官方 Sony SDK。

目标维护者

要求

此目标是交叉编译的,需要在您的系统上安装 VITASDK 工具链。不支持动态链接。

可以使用 build-std 构建 #![no_std] crate,以构建 core,以及可选的 allocpanic_abort

部分支持 std,但大部分情况下可以正常工作。某些 API 未实现,只会返回错误,例如 std::process

默认情况下,此目标生成带有 thumb ISA 的 ELF 格式的二进制文件。

二进制文件使用 VITASDK 工具链提供的 arm-vita-eabi-gcc 进行链接。

构建目标

Rust 不为此目标提供预编译的构件。您可以使用 build-std 标志来构建带有 std 的 ELF 二进制文件。

cargo build -Z build-std=std,panic_abort --target=armv7-sony-vita-newlibeabihf --release

构建 Rust 程序

在 PlayStation Vita 上安装和运行构建产物的推荐方法是使用 cargo-vita 工具。此工具使用 build-std 和 VITASDK 工具链来构建可在 Vita 上运行的构件。

要安装该工具,请运行

cargo install cargo-vita

必须安装 VITASDK 工具链,并且必须将 VITASDK 环境变量设置为其位置,例如:

export VITASDK=/opt/vitasdk

将以下部分添加到您的项目的 Cargo.toml 文件中

[package.metadata.vita]
# A unique 9 character alphanumeric identifier of the app.
title_id = "RUSTAPP01"
# A title that will be used for the app. Optional, name will be used if not defined
title_name = "My application"

要以 release 配置构建带有 ELF 的 VPK,请运行

cargo vita build vpk --release

构建 *.vpk 文件后,可以将其上传到 PlayStation Vita 并安装,或与 Vita3K 模拟器一起使用。

测试

支持默认的 Rust 测试运行器,并且可以使用 cargo-vita 工具将测试编译为 elf 并打包到 *.vpk 文件中。目前不支持过滤测试,因为 Vita 不支持将命令行参数传递给可执行文件,因此运行器将始终执行所有测试。

尚未支持 library/std 的 Rust 测试套件。

交叉编译

此目标可以从 Windows、MacOS 或 Linux 系统上的 x86_64 进行交叉编译。不支持其他主机进行交叉编译。