私は木枠foo_sys
を持っています。 Rust 2015では便宜上extern crate foo_sys as foo
を使用しましたが、Rust 2018 extern crate
はもう必要ないので、必要ありませんエイリアシングにのみ使用したい。extern crate
を削除すると、
エラー [E0463] :
foo
のクレートが見つかりません
これは、 rename-dependency Cargo feature、available in Rust 1.31 =。この機能を使用すると、依存関係にパッケージ属性を提供できます。
名前変更依存関係機能を使用すると、ソースとは異なる名前の依存関係をインポートできます。これは、いくつかのシナリオで役立ちます。
- 異なるレジストリからの同じ名前の箱によって異なります。
- クレートの複数のバージョンによって異なります。
- Rust source。で
extern crate foo as bar
を必要としないでください
書く代わりに
[dependencies]
foo_sys = "0.2"
package
キーはCargo.toml
の依存関係に追加できます。
[dependencies]
foo = { package = "foo_sys", version = "0.2" }
慣用的な解決策は、Cargo.toml
でクレートの名前を変更することです。詳細については、 Tim Diekmannによる回答 を参照してください。
ただし、何らかの理由でCargo.toml
の名前変更を使用したくない場合でも、古い構文を使用できます。ソフト非推奨ですが、削除されていません。したがって、これは引き続き機能します。
extern crate foo_sys as foo;
( 遊び場の例 )