我有一个板条箱setResult()
。在Rust 2015中,为了方便起见,我使用了foo_sys
,但是在Rust 2018中,extern crate foo_sys as foo
不再需要了,我不想仅将其用于别名。放下extern crate
时,我得到了
错误[E0463]:找不到
extern crate
的板条箱
答案 0 :(得分:14)
这可以通过rename-dependency可用的in Rust 1.31货运功能来实现。使用此功能,可以为依赖项提供包属性:
重命名依赖性功能允许您导入名称与源名称不同的依赖性。在某些情况下这可能很有用:
- 取决于来自不同注册表的同名箱子。
- 取决于板条箱的多个版本。
- 避免在Rust源中使用
extern crate foo as bar
。
代替写作
[dependencies]
foo_sys = "0.2"
可以将package
键添加到Cargo.toml
中的依赖项中:
[dependencies]
foo = { package = "foo_sys", version = "0.2" }
答案 1 :(得分:7)
惯用的解决方案是重命名Cargo.toml
中的箱子。有关更多信息,请参见the answer by Tim Diekmann。
但是,如果由于某些原因您不想使用Cargo.toml
重命名,您仍然可以使用旧语法。它已被软弃用,但未被删除。因此,这仍然有效:
extern crate foo_sys as foo;