如何仅为给定平台使用箱子?

Jua*_*eni 5 rust rust-cargo

我想nix在项目中使用箱子.

但是,这个项目还有一个可接受的OSX和Windows替代实现,我想使用不同的箱子.

我目前nix在Linux平台上只想表达什么?

Joe*_*lay 7

您需要两个步骤才能使依赖项完全针对特定目标.

首先,你需要在你的指定中Cargo.toml,如下所示:

[target.'cfg(target_os = "linux")'.dependencies]
nix = "0.5"
Run Code Online (Sandbox Code Playgroud)

这将使Cargo仅在该配置处于活动状态时包含依赖项.但是,这意味着extern crate当您尝试在其他平台上构建时,您将收到编译错误!要解决此问题,请使用cfg属性进行注释,如下所示:

#[cfg(target_os = "linux")]
extern crate nix;
Run Code Online (Sandbox Code Playgroud)

当然,你就必须确保你只用nix箱中的代码多数民众赞成标注了相同的cfg属性.