Rust 如何跳过图书馆的板条箱';s示例取决于目标平台?

Rust 如何跳过图书馆的板条箱';s示例取决于目标平台?,rust,rust-cargo,Rust,Rust Cargo,我有一个Rust库,我只在Linux上使用,但我不知道它为什么不能在Windows上工作;但是,其中一个示例是Unix特定的,因此板条箱无法在AppVeyor上构建 原因是其中一个示例使用了一个仅Unix的依赖项(),因此当我使用时,它无法构建该开发人员依赖项 因此,我将依赖项设置为有条件的: [target.'cfg(unix)'.dev-dependencies] termion = "1.0" 到目前为止还不错,但现在这个例子在extern-clatetermion上失败了 我需要的是不

我有一个Rust库,我只在Linux上使用,但我不知道它为什么不能在Windows上工作;但是,其中一个示例是Unix特定的,因此板条箱无法在AppVeyor上构建

原因是其中一个示例使用了一个仅Unix的依赖项(),因此当我使用时,它无法构建该开发人员依赖项

因此,我将依赖项设置为有条件的:

[target.'cfg(unix)'.dev-dependencies]
termion = "1.0"
到目前为止还不错,但现在这个例子在
extern-clatetermion
上失败了

我需要的是不要在非Unix类目标上构建该示例。我希望是这样的:

[[target.'cfg(unix)'.example]]
name = "foo"
会有用,但我得到:

警告:未使用的清单键:target.cfg(unix)。示例
错误:没有名为'foo'的示例目标`
另一个很有前途的方法是Cargo的,但在我写这篇文章时,这意味着这不能帮助我检查它是否对窗户上的稳定锈迹有效

我能想到的最后一个选择是
#[cfg(unix)]
删除示例的大部分源代码,将其转换为Windows上的存根,但我真的希望有一种更干净的方法


是否有一些现有的方法可以跳过一些不受支持的目标上的示例,这些目标可以与当前稳定的锈蚀/货物一起工作?

我认为
#![cfg(unix)]
这个例子是最干净的…@kennytm我想知道-但是“空”文件不会导致编译错误吗?@Shepmaster-Hmm你是对的。因此,需要将代码额外放置在
#[cfg]mod
中,并将
fn main()
转发到
mod
的“main”。是的,这就是我所说的“大部分……源代码”,但事后看来并不十分清楚。:-)