如何仅在给定平台上使用板条箱?

时间:2018-08-13 11:36:19

标签: rust rust-cargo

我想在项目中使用nix条板箱。

但是,该项目还有一个OSX和Windows可接受的替代实现,我想在其中使用其他板条箱。

在Linux平台上我只想要nix的当前表达方式是什么?

1 个答案:

答案 0 :(得分:6)

要完全依赖于目标,必须执行两个步骤。

首先,您需要在Cargo.toml中进行指定,如下所示:

[target.'cfg(target_os = "linux")'.dependencies]
nix = "0.5"

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

#[cfg(target_os = "linux")]
extern crate nix;

当然,然后,您必须确保仅在用同样的nix属性注释的 代码中使用cfg条板箱。