如何只为给定的平台使用一个箱子?
How to use a crate only for a given platform?
我想在项目中使用 nix
crate。
但是,这个项目也有一个可接受的替代实现 OSX 和 Windows,我想在其中使用不同的板条箱。
目前我只想要 nix
在 Linux 平台上的表达方式是什么?
要使依赖项完全特定于目标,您需要执行两个步骤。
首先,您需要在 Cargo.toml
中指定此项,如下所示:
[target.'cfg(target_os = "linux")'.dependencies]
nix = "0.5"
这将使 Cargo 仅在该配置处于活动状态时包含依赖项。但是,这意味着当您尝试在其他平台上构建时,您的 extern crate
会出现编译错误!要解决此问题,请使用 cfg
属性对其进行注释,如下所示:
#[cfg(target_os = "linux")]
extern crate nix;
当然,您必须确保只在 也 注释有相同 cfg
属性的代码中使用 nix
crate。
我想在项目中使用 nix
crate。
但是,这个项目也有一个可接受的替代实现 OSX 和 Windows,我想在其中使用不同的板条箱。
目前我只想要 nix
在 Linux 平台上的表达方式是什么?
要使依赖项完全特定于目标,您需要执行两个步骤。
首先,您需要在 Cargo.toml
中指定此项,如下所示:
[target.'cfg(target_os = "linux")'.dependencies]
nix = "0.5"
这将使 Cargo 仅在该配置处于活动状态时包含依赖项。但是,这意味着当您尝试在其他平台上构建时,您的 extern crate
会出现编译错误!要解决此问题,请使用 cfg
属性对其进行注释,如下所示:
#[cfg(target_os = "linux")]
extern crate nix;
当然,您必须确保只在 也 注释有相同 cfg
属性的代码中使用 nix
crate。