*-apple-tvos
- aarch64-apple-tvos
- x86_64-apple-tvos
层级:3
Apple tvOS 目标
- aarch64 上的 Apple tvOS
- x86_64 上的 Apple tvOS 模拟器
目标维护者
要求
这些目标是交叉编译的。您需要适当版本的 Xcode 和 tvOS SDK (AppleTVOS.sdk
) 和/或 tvOS 模拟器 SDK (AppleTVSimulator.sdk
) 来构建工具链并针对这些平台。
据我所知,这些目标支持大多数(见下文)标准库,包括分配器,但它们非常新,尚未经过充分测试,因此可能存在各种错误。
理论上,我们支持回溯到 tvOS 7.0 版本,但您实际可以定位的最低版本可能比这更新,例如由于 Xcode 和 SDK 的版本。
与其他 Apple 目标一样,rustc
尊重 Xcode 用于配置此目标的常用环境变量,在本例中为 TVOS_DEPLOYMENT_TARGET
。
不完全支持的库功能
如前所述,支持“大多数”标准库,这意味着某些部分已知不支持。以下 API 目前已知缺少或支持不完整
std::process::Command
的 API 将返回错误,如果它以无法使用posix_spawn
执行的方式配置 - 这是因为更灵活的基于fork
/exec
的方法在这些平台上被禁止,以支持posix_spawn{,p}
(这仍然可能会导致您被应用商店拒绝,因此很可能是仅限侧载的)。很难枚举发生这种情况的具体情况集(并且会很快过时),但在某些情况下,可以通过调整调用Command
的方式来解决。
构建目标
可以通过在 config.toml
中为 rustc
构建启用这些目标来构建它们,例如添加
[build]
build-stage = 1
target = ["aarch64-apple-tvos", "x86_64-apple-tvos", "aarch64-apple-tvos-sim"]
cargo
在 -Zbuild-std
下也可能用于定位它们。
构建 Rust 程序
注意:构建此目标需要相应的 TVOS SDK,如 Xcode 提供。
可以为这些目标构建 Rust 程序
$ rustc --target aarch64-apple-tvos your-code.rs
...
$ rustc --target x86_64-apple-tvos your-code.rs
...
$ rustc --target aarch64-apple-tvos-sim your-code.rs
测试
目前不支持在 tvOS 或模拟器上运行 Rust 或标准库测试套件。测试主要通过从 Xcode 或模拟器调用的静态库构建手动完成。
希望将来能够改进这一点。
交叉编译工具链和 C 代码
此目标可以从 x86_64 或 aarch64 macOS 主机交叉编译。
不支持其他主机进行交叉编译,但如果也提供所需的 Xcode SDK,则可能有效。